GitHub user mpritham created a discussion: Should CoreLogger override 
`addHandler`/`removeHandler` to avoid warnings from PR #3125?

# Context

PR #3125 added overrides to ApiLogger for JUL mutator methods (addHandler, 
removeHandler, setUseParentHandlers, etc.) that log a WARN via StatusLogger:

```Ignoring call to `j.u.l.Logger.addHandler(...)`, since the Log4j API does 
not provide methods to modify the underlying implementation.```

I understand how this makes sense for 
[ApiLogger](https://github.com/apache/logging-log4j2/blob/2.x/log4j-jul/src/main/java/org/apache/logging/log4j/jul/ApiLogger.java):
 the JavaDoc describes it as the "Log4j API implementation" that explicitly 
does not use java.util.logging.Handler, and it only holds a reference to 
ExtendedLogger (a log4j-api type).

My understanding is that 
[CoreLogger](https://github.com/apache/logging-log4j2/blob/2.x/log4j-jul/src/main/java/org/apache/logging/log4j/jul/CoreLogger.java)
 is an implementation of a JUL Logger with direct access to 
`org.apache.logging.log4j.core.Logger`, `Configurator`, and `LoggerConfig`. It 
already overrides `setLevel`, `getLevel`,
  `setUseParentHandlers`, `getUseParentHandlers`, and `getParent` with working 
implementations.

However, `CoreLogger` doesn't override `addHandler` or `removeHandler`, so it 
inherits `ApiLogger`'s new warning behavior.

I'm using CoreLoggerAdapter via:
```
log4j.jul.LoggerAdapter = org.apache.logging.log4j.jul.CoreLoggerAdapter
```

This means that even with `CoreLoggerAdapter` configured, calls like 
`SLF4JBridgeHandler.install()` (which calls 
`Logger.getLogger("").addHandler(...))` produce the warning.

# Question

Was this intentional, or would it make sense for CoreLogger to override 
addHandler/removeHandler as well — either with a working implementation or at 
least without the warning?

Thanks for all the work on Log4j!



GitHub link: https://github.com/apache/logging-log4j2/discussions/4066

----
This is an automatically sent email for [email protected].
To unsubscribe, please send an email to: [email protected]

Reply via email to