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 2019/01/01 18:33:00 UTC

[jira] [Commented] (LOG4J2-2517) RollingFileManager OnStartupTriggeringPolicy never rolls the file on startup

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

Ralph Goers commented on LOG4J2-2517:
-------------------------------------

I've run the project on my Mac and from what I can tell it is behaving as I would expect. On startup there is no previous log file so there is nothing to roll over. If I modify the test to do
{code:java}
File file = new File("logs/logjam.log");
file.getParentFile().mkdirs();
Path path = file.toPath();
String[] msgs = {"Hello"};
List<String> list = Arrays.asList(msgs);
Files.write(path, list, StandardOpenOption.CREATE_NEW, StandardOpenOption.WRITE);
Thread.sleep(3000);
logger = LogManager.getLogger(Main.class);
logger.info("Test");{code}
it rolls over as expected.

> 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)