Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
If you're using the Solr Admin UI, or the underlying /admin/info/logging request handler, the option to 'unset' a log level (so the specified logger will inherit the effective level from it's parent) doesn't actually work.
This is because the underlying Log4j2Watcher impl is explicitly calling LoggerConfig.setLevel(Level.OFF) – meaning it won't log anything regardless of what it's parent logger setting is.
The correct behavior is to use LoggerConfig.setLevel(null)
While looking into this, I realized that the impls of Log4j2Watcher.getAllLoggers() and Log4j2Watcher.Log4j2Info.isSet() are also really bizarre and don't make much sense – making it impossible to tell in the UI which classes actually have a 'set' value in the underlying Log4j2 configuration.
( Just because a LoggerConfig exists for a loggerName, doesn't mean it's Level is "set" – but the code currently assumes it does. That's the distinction between LoggerConfig.getLevel() and LoggerConfig.getExplicitLevel() – the later may return null.)