
Hello Jeremy, You mention a size-based policy, but I only see a time-based policy in your config. The following patterns should work for RollingFileAppender. The code snippets are based on the code you pasted, and I did not test them. Please let me know if they work for you. -Tony *Size-and-time-based rollover [1]* - rolling policy = new TimeBasedRollingPolicy() - TimeBasedRollingPolicy.timeBasedFileNamingAndTriggeringPolicy = new SizeAndTimeBasedFNATP() - trigger policy = do not set (already handled by TimeBasedRollingPolicy) Code: TimeBasedRollingPolicy<ILoggingEvent> rollingPolicy = new TimeBasedRollingPolicy<ILoggingEvent>(); rollingPolicy.setMaxHistory(2); rollingPolicy.setFileNamePattern(fileDirectory + "/log.%d.txt"); rollingPolicy.setParent(rollingFileAppender); rollingPolicy.setContext(loggerContext); // size-and-time-based rollover (5MB files). // We don't need to set this triggering policy's context or start // it because RollingFileAppender.start() does all that for us. // SizeAndTimeBasedFNATP.start() is relatively expensive, so do it // only once if we can avoid it. SizeAndTimeBasedFNATP<ILoggingEvent> triggerPolicy = new SizeAndTimeBasedFNATP<ILoggingEvent>(); triggerPolicy.setMaxFileSize("5MB"); rollingPolicy.setTimeBasedFileNamingAndTriggeringPolicy(triggerPolicy); rollingPolicy.start(); *Size-based rollover [2]* - rolling policy = new FixedWindowRollingPolicy() - trigger policy = new SizeBasedTriggeringPolicy() Code: // size-based rollover (fixed window of 3 files, 5MB each) FixedWindowRollingPolicy rollingPolicy2 = new FixedWindowRollingPolicy(); rollingPolicy2.setContext(loggerContext); rollingPolicy2.setFileNamePattern("foo.%i.log"); rollingPolicy2.setMinIndex(1); rollingPolicy2.setMaxIndex(3); rollingPolicy2.start(); // size-based rollover needs a triggering policy SizeBasedTriggeringPolicy<ILoggingEvent> triggerPolicy2 = new SizeBasedTriggeringPolicy<ILoggingEvent>(); triggerPolicy2.setContext(loggerContext); triggerPolicy2.setMaxFileSize("5MB"); triggerPolicy2.start(); [1] http://logback.qos.ch/manual/appenders.html#SizeAndTimeBasedFNATP [2] http://logback.qos.ch/manual/appenders.html#SizeBasedTriggeringPolicy On Wed, May 14, 2014 at 8:53 PM, Jeremy Kane <jkane001@gmail.com> wrote:
I've been trying to get the rollinglogfileappender to roll-over at a certain file size, but I've had no luck. I can get it to roll over at midnight each night, but I still would prefer to either combine them or have it just be file-size limited.
My config is such:
// Rolling Log Appender String fileDirectory = KanetikApplication.getFileDirectory(context);
RollingFileAppender<ILoggingEvent> rollingFileAppender = new RollingFileAppender<ILoggingEvent>(); rollingFileAppender.setContext(loggerContext); rollingFileAppender.setAppend(true); rollingFileAppender.setFile(fileDirectory + "/log.txt");
TimeBasedRollingPolicy<ILoggingEvent> rollingPolicy = new TimeBasedRollingPolicy<ILoggingEvent>(); rollingPolicy.setMaxHistory(2); rollingPolicy.setFileNamePattern(fileDirectory + "/log.%d.txt"); rollingPolicy.setParent(rollingFileAppender); rollingPolicy.setContext(loggerContext); rollingPolicy.start();
rollingFileAppender.setRollingPolicy(rollingPolicy);
PatternLayoutEncoder fileEncoder = new PatternLayoutEncoder(); fileEncoder.setContext(loggerContext); fileEncoder.setPattern("%d{h:mm:ss} %level - %msg%n"); fileEncoder.start();
rollingFileAppender.setEncoder(fileEncoder); rollingFileAppender.start();
// LogCat Appender PatternLayoutEncoder logcatEncoder = new PatternLayoutEncoder(); logcatEncoder.setContext(loggerContext); logcatEncoder.setPattern("%msg%n"); logcatEncoder.start();
PatternLayoutEncoder tagEncode = new PatternLayoutEncoder(); tagEncode.setContext(loggerContext); tagEncode.setPattern(tag); tagEncode.start();
LogcatAppender logcatAppender = new LogcatAppender(); logcatAppender.setContext(loggerContext); logcatAppender.setEncoder(logcatEncoder); logcatAppender.setTagEncoder(tagEncode); logcatAppender.start();
// add the newly created appenders to the root logger; // qualify Logger to disambiguate from org.slf4j.Logger ch.qos.logback.classic.Logger root = (ch.qos.logback.classic.Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
root.setLevel(level); root.addAppender(rollingFileAppender); root.addAppender(logcatAppender);
Can anyone tell me why it's not working?
Thanks! J
_______________________________________________ Logback-user mailing list Logback-user@qos.ch http://mailman.qos.ch/mailman/listinfo/logback-user