You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@logging.apache.org by "Ralph Goers (Jira)" <ji...@apache.org> on 2022/11/13 05:05:00 UTC
[jira] [Comment Edited] (LOG4J2-3632) Using log4j-1_2-api to load XML configuration - Logger.getAppenders() empty
[ https://issues.apache.org/jira/browse/LOG4J2-3632?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17633216#comment-17633216 ]
Ralph Goers edited comment on LOG4J2-3632 at 11/13/22 5:04 AM:
---------------------------------------------------------------
The Log4j 1.2 bridge maps Log4j 1 provided Appenders to Log4j 2 Appenders as that is more efficient and easier to support. Log4j 1 Loggers cannot reference those Appenders as they do not implement the same interface.
was (Author: ralph.goers@dslextreme.com):
The Log4j 1.2 bridge maps Log4j 1 provided Appenders to Log4j 2 Appenders as that is more efficient and easier to support. Log4j 1 Loggers cannot reference those Appenders as they do not implemen the same interface.
> 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
> 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)