Hi TJ,
It's a problem which has not been considered previously. Nice problem
description btw. One solution would be to subclass
TimeBasedRollingPolicy and override the stop() method so that it
compresses the current log file. It should not be too hard to do. Ask
for help if you run into trouble.--
On 04/11/2011 3:32 PM, TJ Rothwell wrote:
Hi,
I'm using SiftingAppender on top of an appender that uses compression.
When using a variable (like username) that will show up more than once,
it works great. But when using a session id which is unique, then the
log file will not be triggered for compression leading to larger disk
usage. Is there a way to go about triggering the file to be compressed
when the SiftingAppender closes the child appender after it's timeout
period?
Definition of my appender:
<appender name="SIFT-SESSION_ID"
class="ch.qos.logback.classic.sift.SiftingAppender">
<discriminator class="ch.qos.logback.classic.sift.MDCBasedDiscriminator">
<key>SESSION_ID</key>
<defaultValue>unknown</defaultValue>
</discriminator>
<sift>
<appender name="FILE-${SESSION_ID}"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS zz} %-5level [%thread] %logger{35} -
%msg%n%xEx{full}</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${CONTEXT_DATA_PATH}/logs/session/session-${SESSION_ID}.%d{yyyy-MM-dd}.%i.txt.zip</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
</sift>
</appender>
Thanks!
-- TJ
Ceki
http://twitter.com/#!/ceki
_______________________________________________
Logback-user mailing list
Logback-user@qos.ch
http://mailman.qos.ch/mailman/listinfo/logback-user