[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
Fri Mar 22 08:53:57 CET 2013
Anyone ? This happens with a minutely rollover on 1.0.10. Easily
reproducible, does http://jira.qos.ch/browse/LOGBACK-162 still have
issues ?
On 18 March 2013 11:10, Jan-Olav Eide <janolaveide at gmail.com> wrote:
> Theres still seems to be problems when there are gaps. When rollover
> occurs, it appeasrs that logback naively calculates what to be
> removed without teking the fact that there may be gaps into
> consideration. This leaves old log files hanging around.
>
> On 13 March 2013 16:26, Jan-Olav Eide <janolaveide at gmail.com> 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;
>> }
More information about the Logback-user
mailing list