[
https://issues.apache.org/jira/browse/LOG4J2-2483?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17341726#comment-17341726
]
JIATAI CHEN commented on LOG4J2-2483:
-------------------------------------
Hi Stephen,
Have you solved this problem?
I am also meeting the similar situation.
> CronTriggeringPolicy fails with $${date} in path
> ------------------------------------------------
>
> Key: LOG4J2-2483
> URL: https://issues.apache.org/jira/browse/LOG4J2-2483
> Project: Log4j 2
> Issue Type: Bug
> Components: Core
> Affects Versions: 2.11.1
> Reporter: Stephen Dawkins
> Priority: Major
> Attachments: remove-current-time.patch
>
>
> CronTriggeringPolicy fails when the path of the filePattern contains $${date}
> in a directory. Eg:
> {code:java}
> <RollingFile name="file"
> filePattern="logs/$${date:yyyy-MM-dd-HH-mm}/requests.log.%d{yyyy-MM-dd-HH-mm}">
> <PatternLayout charset="UTF-8"><Pattern>%m%n</Pattern></PatternLayout>
> <CronTriggeringPolicy schedule="0 * * * * ?" />
> </RollingFile>
> {code}
> Give this exception when rolling the file:
> {code:java}
> 2018-10-22 16:48:30,615 main DEBUG Now writing to
> logs/2018-10-22-16-48/requests.log.2018-10-22-16-48 at
> 2018-10-22T16:48:30.615+0100
> 2018-10-22 16:48:30,615 DEBUG foo [main] hello: 2018-10-22 16:48:30
> 2018-10-22 16:48:40,621 DEBUG foo [main] hello: 2018-10-22 16:48:40
> 2018-10-22 16:48:50,621 DEBUG foo [main] hello: 2018-10-22 16:48:50
> 2018-10-22 16:49:00,024 Log4j2-TF-2-Scheduled-1 DEBUG Setting prev file time
> to 2018-10-22T16:48:00.000+0100
> 2018-10-22 16:49:00,024 Log4j2-TF-2-Scheduled-1 DEBUG Rolling
> logs/2018-10-22-16-48/requests.log.2018-10-22-16-48
> 2018-10-22 16:49:00,024 Log4j2-TF-2-Scheduled-1 DEBUG Found 0 eligible files,
> max is 2147483647
> 2018-10-22 16:49:00,040 Log4j2-TF-2-Scheduled-1 DEBUG Now writing to
> logs/2018-10-22-16-49/requests.log.2018-10-22-16-49 at
> 2018-10-22T16:49:00.040+0100
> 2018-10-22 16:49:00,040 Log4j2-TF-2-Scheduled-1 ERROR RollingFileManager null
> Failed to create file after rollover: java.io.FileNotFoundException:
> logs\2018-10-22-16-49\requests.log.2018-10-22-16-49 (The system cannot find
> the path specified) java.io.FileNotFoundException:
> logs\2018-10-22-16-49\requests.log.2018-10-22-16-49 (The system cannot find
> the path specified)
> at java.io.FileOutputStream.open0(Native Method)
> at java.io.FileOutputStream.open(FileOutputStream.java:270)
> at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
> at java.io.FileOutputStream.<init>(FileOutputStream.java:133)
> at
> org.apache.logging.log4j.core.appender.FileManager.createOutputStream(FileManager.java:188)
> at
> org.apache.logging.log4j.core.appender.rolling.RollingFileManager.createFileAfterRollover(RollingFileManager.java:324)
> at
> org.apache.logging.log4j.core.appender.rolling.RollingFileManager.rollover(RollingFileManager.java:316)
> at
> org.apache.logging.log4j.core.appender.rolling.CronTriggeringPolicy.rollover(CronTriggeringPolicy.java:151)
> at
> org.apache.logging.log4j.core.appender.rolling.CronTriggeringPolicy.access$100(CronTriggeringPolicy.java:41)
> at
> org.apache.logging.log4j.core.appender.rolling.CronTriggeringPolicy$CronTrigger.run(CronTriggeringPolicy.java:174)
> at
> org.apache.logging.log4j.core.config.ConfigurationScheduler$CronRunnable.run(ConfigurationScheduler.java:239)
> {code}
> This seems to be because CronTriggerPolicy used both prevFileTime and
> currentFileTime in the PatternProcessor, however the parent directories only
> get created for the files generated with prevFileTime.
> As currentFIleTime is only used by CronTriggerPolicy, the code can be
> simplified to just used prevFileTime, avoiding this problem. I've attached a
> patch.
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)