You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Selenium library is currently taking an interesting approach to logging.
Many places in the code use getDebugLogLevel() to determine the level that something should be logged at.
That code is checking to see whether either of two property values have been set or the code is in Debug mode (e.g., IntelliJ debugger), and if it is, it logs things at the INFO level instead of the FINE level.
The nice thing about this approach is that we can tell people to do:
The other nice thing is that we don't have to worry about what other logging handlers they might be using, we don't have to override anything, we can just make our code log at a default visible level.
The less nice thing about this approach is that it isn't obvious why it's happening or how to change it.
Also, the toggle is based on a static block on the class, so changing the System property during the test will not change the behavior, which is limiting.
More importantly, right now some things are logged this way and some things aren't and I think we need to be consistent one way or another.
Options:
Deprecate selenium.webdriver.verbose and selenium.debug and remove the whole class
Move everything that is "general debug" information to use getDebugLogLevel() (keep the things I changed to log at FINER level at the FINER level — [java] reduce log noise at FINE level #12866)
Remove the conditional to toggle this on automatically in Debug mode
Have the system property change the level the user is logging things rather than changing the level the line is getting logged at (this could break things for users if they have other implementations)
Let the the user change the debug mode on the fly via System property
The first feels too drastic, but I'm ok with requesting people use an alternate solution if we agree that's better.
Changing the user's logging level for them could be, depending:
Feature and motivation
Selenium library is currently taking an interesting approach to logging.
Many places in the code use
getDebugLogLevel()
to determine the level that something should be logged at.That code is checking to see whether either of two property values have been set or the code is in Debug mode (e.g., IntelliJ debugger), and if it is, it logs things at the
INFO
level instead of theFINE
level.The nice thing about this approach is that we can tell people to do:
instead of having them learn how to use the root logger, etc as described here: https://www.selenium.dev/documentation/webdriver/troubleshooting/logging/
The other nice thing is that we don't have to worry about what other logging handlers they might be using, we don't have to override anything, we can just make our code log at a default visible level.
The less nice thing about this approach is that it isn't obvious why it's happening or how to change it.
Also, the toggle is based on a static block on the class, so changing the System property during the test will not change the behavior, which is limiting.
More importantly, right now some things are logged this way and some things aren't and I think we need to be consistent one way or another.
Options:
selenium.webdriver.verbose
andselenium.debug
and remove the whole classgetDebugLogLevel()
(keep the things I changed to log at FINER level at the FINER level — [java] reduce log noise at FINE level #12866)The first feels too drastic, but I'm ok with requesting people use an alternate solution if we agree that's better.
Changing the user's logging level for them could be, depending:
Usage example
n/a
The text was updated successfully, but these errors were encountered: