Georg Friedrich created LOG4J2-1649:
---------------------------------------

             Summary: CronTriggeringPolicy breaks awefully when using 
"reconfigure" of LoggerContext
                 Key: LOG4J2-1649
                 URL: https://issues.apache.org/jira/browse/LOG4J2-1649
             Project: Log4j 2
          Issue Type: Bug
    Affects Versions: 2.7
            Reporter: Georg Friedrich
            Priority: Critical


Hi,
I've a major problem when using CronTriggeringPolicy in Spring Boot 
environments.
I've tracked the problem down to Log4J2.
The following is happening:
* When the Spring context is created, getContext is called which results in 
creation on the Log4J context and the cron trigger is registered as normal
* After that Spring starts a reinitialization of the LoggerSystem by calling 
"reconfigure" of the LoggerContext of Log4J.
* This results in very weird behvaiour of Log4J:
** Log4J finds the already created RollingFileManager in the "MAP" field in the 
AbstractManager class.
** As it was already available it calls the "updateData" which in results sets 
the trigger again.
** After that the "initialize" method is called on the RollingFileManager, 
which again registers the trigger. (The cron trigger is now scheduled 3 times! 
First time by the normal getContext initialization and two times more by the 
reconfiguration)

The good thing is: As the old configuration gets destroyed, the old scheduler 
is being shutdown too, but the last schedule of the first cron trigger is 
called nevertheless.

So basically you get 3 cron trigger calls, where 2 of them are properly 
rescheduled.

How it should be fixed (from my point of view):
* Kill old CronTriggers from scheduling when the context gets reconfigured
* Do not call initialize for the triggering policy when the RollingFileManager 
is updated as this is done afterwards nevertheless



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-dev-h...@logging.apache.org

Reply via email to