You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@logging.apache.org by "Kuznetsov Anton (Jira)" <ji...@apache.org> on 2020/01/14 13:22:00 UTC

[jira] [Created] (LOG4J2-2759) RollingFile does not roll with createOnDemand=true

Kuznetsov Anton created LOG4J2-2759:
---------------------------------------

             Summary: 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


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)