[ 
https://issues.apache.org/jira/browse/LOG4J2-3440?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17885603#comment-17885603
 ] 

Kostiantyn Miklevskyi commented on LOG4J2-3440:
-----------------------------------------------

[~pkarwasz] 

It's not a public library, unfortunately. I cannot change the way it works. 
Basically, it will first do the 
DOMConfigurator.configure("/valid/path/log4j.xml") but then, it will try to 
check if the configuration succeeded by doing 
Logger.getRootLogger().getAllAppenders().hasMoreElements(). And once it returns 
false, it will apply it's own default configuration.

As for the PR - will try to do it. My idea would be to change some base class 
for Console/File/Rolling Appenders in log4j1 bridge an then change 
getAllAppeners() to return log4j1 ConsoleAppender, constructed with an internal 
reference to log4j2 ConsoleAppender and the same for File and RollingFile 
appenders, kind of similar to what AdapterWrapper does.

> Log4j 1.2 bridge getAllAppenders() returns null enumeration
> -----------------------------------------------------------
>
>                 Key: LOG4J2-3440
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-3440
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Log4j 1.2 bridge
>    Affects Versions: 2.17.2
>            Reporter: Pablo Rogina
>            Assignee: Piotr Karwasz
>            Priority: Major
>             Fix For: 2.18.0
>
>         Attachments: log4j.xml
>
>
> Old application using Log4j 1.2.x relies on Logger.getAllAppenders() to 
> decide if Log4j it's already configured (returned Enumeration has at least 1 
> appender) or not (empty returned Enumeration).
> Some recent code audits mandate to remove log4j v1 component(s) and to 
> upgrade to latest 2.17.2 release, so we're using Log4j 1.2 Bridge to comply 
> and not to change application code.
> However, we're facing the issue describe here [1] for 
> Logger.getRootLogger().getAllAppenders() although with latest Log4j release 
> 2.17.2 the issue seems to be that data structure aai is never updated with 
> the proper configured appenders, given that now most of the work happens in 
> the Log4j v2 Core implementation, thus using LoggerContext
> [1] [java - Log4j getAllAppenders() returns null enumeration - Stack 
> Overflow|https://stackoverflow.com/questions/32864929/log4j-getallappenders-returns-null-enumeration]
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to