Improve Log4J log level reset support
Update `Log4J2LoggingSystem` so that call to `setLevel` with a `null` level with remove the logger if it was previously configured by a `LoggingSystem` call. To track which loggers have been configured by us, and which have been configure directly by the user, a custom `LoggerConfig` subclass is used. We'll only remove `LevelSetLoggerConfig` classes, for any others we'll call `setLevel(null)` on the config. Prior to this commit, it was impossible to set then reset a logger level using the actuator endpoint. This is because Log4J doesn't provide a way to get the actual configured level. If the `setLevel(null)` has been applied, then `getLevel()` will return the value of the parent logger or a default value of `ERROR`. Fixes gh-24298
Showing
Please register or sign in to comment