[
https://issues.apache.org/jira/browse/LOG4J2-3632?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17633642#comment-17633642
]
Jeff Thomas commented on LOG4J2-3632:
-------------------------------------
Hello [~pkarwasz] / [~rgoers] ,
thanks for both of your detailed answers!
The short version is that we have a monolithich WAR application which until now
gave administrators the ability to obtain information about log4j 1.2 loggers
at runtime (level, appenders, filters)... Changes could be made via the UI
and when published to the server a new log4j.xml was written and dynamically
reloaded,
Now we are moving to log4j 2.x and I am exploring our options and limitations.
Cheers, Jeff
> Using log4j-1_2-api to load XML configuration - Logger.getAppenders() empty
> ---------------------------------------------------------------------------
>
> Key: LOG4J2-3632
> URL: https://issues.apache.org/jira/browse/LOG4J2-3632
> Project: Log4j 2
> Issue Type: Bug
> Components: Log4j 1.2 bridge
> Affects Versions: 2.19.0
> Reporter: Jeff Thomas
> Assignee: Piotr Karwasz
> Priority: Major
> Attachments: image-2022-11-13-02-02-03-595.png,
> image-2022-11-13-02-05-42-235.png
>
>
> I have used the log4j 1.2 bridge XmlConfigurator to load a 1.2 XML
> configuration and performed a `Configurator.reconfigure(configuration)`.
> Then I retrieved a logger using "Logger.getLogger(String)".
> When I then call 'Logger.getAppenders()" the returned enumeration is empty.
> Looking at the logger in the debugger I can see the attached Appenders in the
> associated LoggerConfig.
> !image-2022-11-13-02-02-03-595.png!
> In `org.apache.log4j.Category` I stepped through and got to here which
> returned an empty collection.
> !image-2022-11-13-02-05-42-235.png!
> I might be doing something wrong ... it has been known to happen. :) But I
> was expecting to get the two configured appenders "console" and "file" here.
> The "problem" _seems_ to be here with the stream filter:
> {code:java}
> return Collections.enumeration(appenders.stream()
> // omit native Log4j 2.x appenders
> .filter(AppenderAdapter.Adapter.class::isInstance)
> .map(AppenderWrapper::adapt)
> .collect(Collectors.toSet()));{code}
> The Javadoc in `Category` does say:
> {quote} Get all the Log4j 1.x appenders contained in this category as an
> \{@link Enumeration}. Log4j 2.x appenders are omitted.
> {quote}
> But I did load the configuration with the Bridge and I was hoping my legacy
> code would still get the Appenders as before.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)