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

Dennys Fredericci commented on LOG4J2-2918:
-------------------------------------------

Hi All,

If we don't call the {{Configurator.reconfigure(Configuration)}} the filter 
which was included programmatically will have unexpected behavior.

For instance:

 
{code:java}
LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
Configuration config = ctx.getConfiguration();

LoggerConfig rootLogger = config.getRootLogger();
LoggerFilter loggerFilter = new LoggerFilter();
rootLogger.addFilter(loggerFilter);

ctx.updateLoggers(config);

log.info("Just a random log... 1");
log.info("Just a random log... 2");
log.info("Just a random log... 3");
log.info("Just a random log... 4");
log.info("Just a random log... 5");

System.out.printf("Logger Filter: %s %n", loggerFilter.getCounter());
{code}
 

 

The output will be: 

 
{code:java}
Logger Filter: 11 
{code}
Which is wrong as the logger was triggered 5 times.

 

 

But, if we add the {{Configurator.reconfigure(Configuration)}} or 
config.stop(){color:#cc7832}; {color}config.start(){color:#cc7832}; {color}then 
the output will be correct:

 
{code:java}
Logger Filter: 5
{code}
 

This is why I tried to call {{Configurator.reconfigure(Configuration).}}

 

{color:#0747a6}Any idea why we have different behavior for filters when use 
{{Configurator.reconfigure(Configuration)}} or config.stop(); config.start();  
?{color}

 

 

 

> NPE on reconfigure method call with async configuration
> -------------------------------------------------------
>
>                 Key: LOG4J2-2918
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-2918
>             Project: Log4j 2
>          Issue Type: Bug
>    Affects Versions: 2.13.3
>            Reporter: Dennys Fredericci
>            Priority: Major
>
> I am getting the error below trying to reconfigure log4j programmatically.
>  
> {code:java}
> 2020-08-24 10:10:18,163 main ERROR Could not register mbeans 
> java.lang.NullPointerException at 
> org.apache.logging.log4j.core.async.AsyncLoggerConfigDisruptor.createRingBufferAdmin(AsyncLoggerConfigDisruptor.java:417)
>  at 
> org.apache.logging.log4j.core.async.AsyncLoggerConfig.createRingBufferAdmin(AsyncLoggerConfig.java:199)
>  at 
> org.apache.logging.log4j.core.jmx.Server.registerLoggerConfigs(Server.java:366)
>  at 
> org.apache.logging.log4j.core.jmx.Server.reregisterMBeansAfterReconfigure(Server.java:186)
>  at 
> org.apache.logging.log4j.core.jmx.Server.reregisterMBeansAfterReconfigure(Server.java:141)
>  at 
> org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:629)
>  at 
> org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:712)
>  at 
> org.apache.logging.log4j.core.config.Configurator.reconfigure(Configurator.java:239)
>  at br.com.fredericci.Main.main(Main.java:28)
> {code}
>  
> Seems the same or similar problem described here:
> https://issues.apache.org/jira/browse/LOG4J2-807
> Here is the project which reproduces this issue:
> [https://github.com/dennysfredericci/log4j2-filter-spike]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to