[
https://issues.apache.org/jira/browse/LOG4J2-3440?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17510770#comment-17510770
]
Piotr Karwasz commented on LOG4J2-3440:
---------------------------------------
[~pablojr],
To provide a backup configuration, there is an easier way: write your own
{{ConfigurationFactory}}. You just need a class:
{code:java}
import org.apache.log4j.config.PropertiesConfiguration;
@Plugin(name = "MyConfigurationFactory", category =
ConfigurationFactory.CATEGORY)
@Order(-10)
public static class MyConfigurationFactory extends ConfigurationFactory {
private static final String[] TYPES = { ".my" };
@Override
protected String[] getSupportedTypes() {
return TYPES;
}
@Override
public Configuration getConfiguration(LoggerContext loggerContext,
ConfigurationSource source) {
final Properties props = new Properties();
// Load the properties
// ...
return new PropertiesConfiguration(loggerContext, props);
}
}
{code}
and a dummy "log4j2.my" file in your library's classpath to trigger the
configuration. Compile the bunch using the annotation processor in
{{log4j-core}}. This way Log4j2 will take care of using your configuration if
no configuration with higher order value is available.
> 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
>
> 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.1#820001)