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

Jon Hanson commented on LOG4J2-2517:
------------------------------------

I've created a simple project here:

[https://github.com/jon-hanson/logjam]

that illustrates one issue. The log4j2.json config file is specifying that log 
files should roll over, however this doesn't happen. From looking at the code 
in OnStartupTriggeringPolicy it appears to be comparing the log file timestamp 
with the JVM start time and only rolling the file if the former is before the 
latter:

{{        if (manager.getFileTime() < JVM_START_TIME && manager.getFileSize() 
>= this.minSize) }}

The problem with this is that it appears to be performing this logic after it 
has opened the file for writing (thereby changing its timestamp), hence the 
test always fails.

> RollingFileManager OnStartupTriggeringPolicy never rolls the file on startup
> ----------------------------------------------------------------------------
>
>                 Key: LOG4J2-2517
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-2517
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Appenders
>    Affects Versions: 2.11.1
>            Reporter: Jon Hanson
>            Priority: Minor
>         Attachments: log4j2.json, log4j2_debug.log
>
>
> I'm trying to get log4j2 (V2.11.1) to roll the existing log file at startup 
> before it starts logging into a new file. My config is atached to the jira. 
> I'm using a RollingFileManager with a OnStartupTriggeringPolicy with 
> minSize=0, which, according to the documentation should be sufficient.
> However what i'm finding is that at startup, the 
> {{OnStartupTriggeringPolicy}} class {{initialize}} method compares the 
> timestamp of the log file to the JVM startup, and if the log file time is 
> after the start-up time then it won't roll the file. If I step through the 
> code then I see that at the point that check is made the file time is always 
> after the JVM start time, because log4j2 appears to have already opened the 
> file for writing at that point.
> More info here:
> [https://stackoverflow.com/questions/53632091/log4j2-rollingfilemanager-onstartuptriggeringpolicy-never-rolls-the-file-on-star]
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to