[
https://issues.apache.org/jira/browse/LOG4J2-2759?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Kuznetsov Anton updated LOG4J2-2759:
------------------------------------
Attachment: Log4jCreateOnDemand.java
> RollingFile does not roll with createOnDemand=true
> --------------------------------------------------
>
> Key: LOG4J2-2759
> URL: https://issues.apache.org/jira/browse/LOG4J2-2759
> Project: Log4j 2
> Issue Type: Bug
> Components: Core
> Affects Versions: 2.11.2, 2.13.0
> Reporter: Kuznetsov Anton
> Priority: Major
> Attachments: Log4jCreateOnDemand.java
>
>
> Steps to reproduce:
> 1) Run code below. It will create log file named 'Error' in
> /home/user/Temp
> with one log message
> 2) Change time on your computer to next day
> 3) Rerun code. It will add another message to the same file.
> Correct behavior:
> on step 3 log4j must create new File
>
> ///code (Sorry that i not attached file, Jira shows error 'Jira could not
> attach the file as there was a missing token. Please try attaching the file
> again.')
> {color:#cc7832}import {color}org.apache.logging.log4j.Level{color:#cc7832};
> {color}{color:#cc7832}import
> {color}org.apache.logging.log4j.LogManager{color:#cc7832};
> {color}{color:#cc7832}import
> {color}org.apache.logging.log4j.Logger{color:#cc7832};
> {color}{color:#cc7832}import
> {color}org.apache.logging.log4j.core.config.Configurator{color:#cc7832};
> {color}{color:#cc7832}import
> {color}org.apache.logging.log4j.core.config.builder.api.*{color:#cc7832};
> {color}{color:#cc7832}import
> {color}org.apache.logging.log4j.core.config.builder.impl.BuiltConfiguration{color:#cc7832};
> {color}{color:#cc7832}
> {color}{color:#cc7832}public class {color}Log4jCreateOnDemand {
> {color:#cc7832}public static void {color}{color:#ffc66d}main{color}(String[]
> args) {
> initLogger(){color:#cc7832};
> {color}{color:#cc7832}
> {color} Logger logger =
> LogManager.getLogger(Log4jCreateOnDemand.{color:#cc7832}class{color}){color:#cc7832};
> {color} logger.error({color:#6a8759}"Test"{color}){color:#cc7832};
> {color} }
> {color:#cc7832}public static void {color}{color:#ffc66d}initLogger{color}() {
> ConfigurationBuilder<BuiltConfiguration> builder =
> ConfigurationBuilderFactory.newConfigurationBuilder(){color:#cc7832};
> {color} String appenderName = {color:#6a8759}"File"{color}{color:#cc7832};
> {color}{color:#cc7832}
> {color} AppenderComponentBuilder rollingAppenderBuilder =
> builder.newAppender(appenderName{color:#cc7832},
> {color}{color:#6a8759}"RollingFile"{color}){color:#cc7832};
> {color} {color:#808080}//change this 2 lines to the path you want
> {color}
> rollingAppenderBuilder.addAttribute({color:#6a8759}"fileName"{color}{color:#cc7832},
> {color}{color:#6a8759}"/home/user/Temp/Error"{color}){color:#cc7832};
> {color}
> rollingAppenderBuilder.addAttribute({color:#6a8759}"filePattern"{color}{color:#cc7832},
>
> {color}{color:#6a8759}"/home/user/Temp/Error_%d\{yyyy-MM-dd}.log"{color}){color:#cc7832};
> {color}{color:#cc7832}
> {color}
> rollingAppenderBuilder.addAttribute({color:#6a8759}"createOnDemand"{color}{color:#cc7832},
>
> {color}{color:#6a8759}"true"{color}){color:#cc7832};{color}{color:#808080}//!!!!!!!!
> {color}{color:#808080}
> {color} ComponentBuilder rollingPolicy =
> builder.newComponent({color:#6a8759}"Policies"{color})
>
> .addComponent(builder.newComponent({color:#6a8759}"TimeBasedTriggeringPolicy"{color})
> .addAttribute({color:#6a8759}"interval"{color}{color:#cc7832},
> {color}{color:#6a8759}"1"{color})){color:#cc7832};
> {color}{color:#cc7832}
> {color} LayoutComponentBuilder layoutBuilder =
> builder.newLayout({color:#6a8759}"PatternLayout"{color})
> .addAttribute({color:#6a8759}"pattern"{color}{color:#cc7832},
> {color}{color:#6a8759}"%d\{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c]
> %m%n"{color}){color:#cc7832};
> {color}{color:#cc7832}
> {color} rollingAppenderBuilder.add(layoutBuilder){color:#cc7832};
> {color} rollingAppenderBuilder.addComponent(rollingPolicy){color:#cc7832};
> {color}{color:#cc7832}
> {color} builder.add(rollingAppenderBuilder){color:#cc7832};
> {color}{color:#cc7832}
> {color} RootLoggerComponentBuilder rootLoggerBuilder =
> builder.newRootLogger(Level.{color:#9876aa}ERROR{color})
> .add(builder.newAppenderRef(appenderName)){color:#cc7832};
> {color} builder.add(rootLoggerBuilder){color:#cc7832};
> {color}{color:#cc7832}
> {color} Configurator.initialize(builder.build()){color:#cc7832};
> {color} }
> }
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)