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
[email protected]
http://mailman.qos.ch/mailman/listinfo/logback-user



--
Ceki
65% of statistics are made up on the spot
_______________________________________________
Logback-user mailing list
[email protected]
http://mailman.qos.ch/mailman/listinfo/logback-user

Reply via email to