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();