That did the trick,  thanks!

On May 27, 2014 2:09 AM, "Tony Trinh" <tony19@gmail.com> wrote:
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


_______________________________________________
Logback-user mailing list
Logback-user@qos.ch
http://mailman.qos.ch/mailman/listinfo/logback-user