[logback-user] How to get rollingfileappender to roll over based on log size

ram pernati rampernati at yahoo.com
Mon Jul 28 17:40:17 CEST 2014


Hi All, 
 
Subject: logback generates two log files
i am using Rollingfile appender and Time based rolling policy for one of the app., it generates two files one with the log file (sample.log) and the other with yesterday's date (sample-2014-07-27.0.log). Appreciate if anybody help on this.
 
<appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
  <if condition='property("logFolder").contains("log")'>
   <then>
    <file>${logFolder}/Sample/sample.log</file>
   </then>
   <else>
    <file>sample.log</file>
   </else>
  </if>
  <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
   <fileNamePattern>sreg-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
   <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
    <!-- or whenever the file size reaches 50MB -->
    <maxFileSize>50MB</maxFileSize>
   </timeBasedFileNamingAndTriggeringPolicy> 
  </rollingPolicy> 
  <encoder>
   <pattern>[%d{ISO8601}] [%-18thread]  - %-25c{0}  - %-5p - %msg%n</pattern>
  </encoder>
 </appender>  


On Tuesday, July 8, 2014 7:48 AM, Jeremy Kane <jkane001 at gmail.com> wrote:
  


That did the trick,  thanks!  
On May 27, 2014 2:09 AM, "Tony Trinh" <tony19 at 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 at 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 at qos.ch
>>http://mailman.qos.ch/mailman/listinfo/logback-user
>>
> 
>_______________________________________________
>Logback-user mailing list
>Logback-user at qos.ch
>http://mailman.qos.ch/mailman/listinfo/logback-user
>
_______________________________________________
Logback-user mailing list
Logback-user at qos.ch
http://mailman.qos.ch/mailman/listinfo/logback-user
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.qos.ch/pipermail/logback-user/attachments/20140728/9d713b3e/attachment.html>


More information about the Logback-user mailing list