[logback-user] Oldest archive files not removed when using SizeAndTimeBasedFNATP when rolling over and there are multiple archive files for the oldest interval.

Jan-Olav Eide janolaveide at gmail.com
Mon Mar 18 11:03:04 CET 2013


This was on 1.0.9. It seems to be behaving better on 1.0.10. WKYP

On 14 March 2013 13:36, ceki <ceki at qos.ch> wrote:
> Hi Jan-Olav,
>
> Your programmatic configuration of RollingFileAppender in conjunction
> with TimeBasedRollingPolicy+SizeAndTimeBasedFNATP looks good. Most
> users have a hard time with such programmatic configuration.
>
> The other files, i.e. trace-2013-03-13-16.12.{1,2,3}, should have been
> removed as well. Which version of logback are you using?
>
>
> On 13.03.2013 16:26, Jan-Olav Eide wrote:
>>
>> Hello, using the following programmatic configuration there seems to
>> be a problem with how the maxHistory argument is implemented.
>> I roll over multiple times withing the time interval (every minute
>> here), creating the following files : (maxHistory = 3)
>>
>>
>> trace.log (active file)
>> trace-2013-03-13-16.14.0.log.zip
>> trace-2013-03-13-16.13.0.log.zip
>> trace-2013-03-13-16.12.2.log.zip
>> trace-2013-03-13-16.12.1.log.zip
>> trace-2013-03-13-16.12.0.log.zip
>>
>> The nex time rollover occurs, the 16.13.0.log.zip file is removed, and
>> not the oldest ones (12.{1,2,3} as I would have expected. Is this
>> intended behaviour ?
>> Or is it a problem with my configuration ?
>>
>>   public static Logger createTimeAndSizeRollingLogger(String fileBase,
>> String maxSize, int maxHistory, String resolutionPattern) {
>>          LoggerContext loggerContext = (LoggerContext)
>> LoggerFactory.getILoggerFactory();
>>          RollingFileAppender<ILoggingEvent> appender = new
>> RollingFileAppender<ILoggingEvent>();
>>          appender.setContext(loggerContext);
>>          appender.setFile(fileBase + ".log");
>>
>>          TimeBasedRollingPolicy<ILoggingEvent> timePolicy = new
>> TimeBasedRollingPolicy<ILoggingEvent>();
>>          timePolicy.setFileNamePattern(fileBase + "_%d{" +
>> resolutionPattern + "}-%i.log.zip");
>>          timePolicy.setContext(loggerContext);
>>          timePolicy.setMaxHistory(maxHistory);
>>          timePolicy.setParent(appender);
>>          appender.setRollingPolicy(timePolicy);
>>
>>          SizeAndTimeBasedFNATP<ILoggingEvent> rollingPolicy = new
>> SizeAndTimeBasedFNATP<ILoggingEvent>();
>>          rollingPolicy.setMaxFileSize(maxSize);
>>          rollingPolicy.setTimeBasedRollingPolicy(timePolicy);
>>          rollingPolicy.setContext(loggerContext);
>>
>>
>> timePolicy.setTimeBasedFileNamingAndTriggeringPolicy(rollingPolicy);
>>          timePolicy.start();
>>          rollingPolicy.start();
>>          PatternLayoutEncoder encoder = new PatternLayoutEncoder();
>>          encoder.setContext(loggerContext);
>>          encoder.setPattern("%msg%n");
>>          encoder.start();
>>
>>          appender.setEncoder(encoder);
>>          appender.start();
>>
>>          Logger logger = loggerContext.getLogger(fileBase);
>>          logger.setLevel(Level.TRACE);
>>          logger.addAppender(appender);
>>          StatusPrinter.print(loggerContext);
>>          return logger;
>>      }
>> _______________________________________________
>> Logback-user mailing list
>> Logback-user at qos.ch
>> http://mailman.qos.ch/mailman/listinfo/logback-user
>>
>
>
> --
> Ceki
> 65% of statistics are made up on the spot
> _______________________________________________
> Logback-user mailing list
> Logback-user at qos.ch
> http://mailman.qos.ch/mailman/listinfo/logback-user


More information about the Logback-user mailing list