<div>Ceki,</div><div><br></div>So I gave it a shot.<div><ul><li><a href="https://github.com/trothwell/logback-test/blob/master/src/main/java/org/trothwell/lbtest/CloseTBRP.java" style="background-color: transparent; "><font face="'courier new', monospace">CloseTBRP.java</font></a></li>
<li><a href="https://github.com/trothwell/logback-test/blob/master/src/test/java/org/trothwell/lbtest/TestCloseTBRP.java" style="background-color: transparent; "><font face="'courier new', monospace">TestCloseTBRP.java</font></a></li>
</ul><div><div><div>I'm running into a few problems if you have some time to take a look:</div><div><ul><li><span style="background-color: transparent; ">I'm unable to delete files after stopping <font face="'courier new', monospace">LoggerContext</font>.</span></li>
<li>Output file count is off (<font face="'courier new', monospace">SiftingAppender </font>or <font face="'courier new', monospace">RollingFileAppender </font>doesn't create both output files)</li><li>
<font face="'courier new', monospace">NullPointerException </font>occurs when stopping <font face="'courier new', monospace">LoggerContext </font>with <font face="'courier new', monospace">CloseTBRP </font>in use</li>
</ul></div><div><span style="background-color: transparent; ">I have two scenarios.</span></div><div><ol><li><span style="background-color: transparent; ">Create a normal </span><font face="'comic sans ms', sans-serif" style="background-color: transparent; ">TimeBasedRollingPolicy </font><span style="background-color: transparent; ">configured for compression that will create 2 output files.</span></li>
<li><span style="background-color: transparent; ">Create the new auto-close </span><font face="'courier new', monospace" style="background-color: transparent; ">CloseTBRP </font><span style="background-color: transparent; ">that will do the same.</span></li>
</ol></div><div><br></div><div>For both configurations this is the steps: (or look at unit test)</div><div><ol><li><span style="background-color: transparent; ">Create new </span><font face="'courier new', monospace" style="background-color: transparent; ">LoggerContext</font></li>
<li><span style="background-color: transparent; ">Configure </span><font face="'courier new', monospace" style="background-color: transparent; ">LoggerContext</font></li><li><span style="background-color: transparent; ">Submit a log event</span></li>
<li><span style="background-color: transparent; ">Set </span><font face="'courier new', monospace" style="background-color: transparent; ">MDC </font><span style="background-color: transparent; ">property for discriminator</span></li>
<li><span style="background-color: transparent; ">Submit a log event</span></li><li><span style="background-color: transparent; ">Stop </span><font face="'courier new', monospace" style="background-color: transparent; ">LoggerContext</font></li>
<li><span style="background-color: transparent; ">Check log file counts</span></li><ol><li><span style="background-color: transparent; ">for </span><font face="'courier new', monospace" style="background-color: transparent; ">TBRP</font><span style="background-color: transparent; ">, 2 text files</span></li>
<li><span style="background-color: transparent; ">for </span><font face="'courier new', monospace" style="background-color: transparent; ">CloseTBRP</font><span style="background-color: transparent; ">, 2 zip files</span></li>
</ol></ol></div></div><div><div><div><br></div><div>Have a great weekend,</div><div><span style="background-color: transparent; ">-- TJ</span></div><div><br><div class="gmail_quote">On Fri, Nov 4, 2011 at 9:59 AM, ceki <span dir="ltr"><<a href="mailto:ceki@qos.ch">ceki@qos.ch</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Hi TJ,<br>
<br>
It's a problem which has not been considered previously. Nice problem<br>
description btw. One solution would be to subclass<br>
TimeBasedRollingPolicy and override the stop() method so that it<br>
compresses the current log file. It should not be too hard to do. Ask<br>
for help if you run into trouble.<div class="HOEnZb"><div class="h5"><br>
<br>
On 04/11/2011 3:32 PM, TJ Rothwell wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,<br>
<br>
I'm using SiftingAppender on top of an appender that uses compression.<br>
When using a variable (like username) that will show up more than once,<br>
it works great. But when using a session id which is unique, then the<br>
log file will not be triggered for compression leading to larger disk<br>
usage. Is there a way to go about triggering the file to be compressed<br>
when the SiftingAppender closes the child appender after it's timeout<br>
period?<br>
<br>
Definition of my appender:<br>
<appender name="SIFT-SESSION_ID"<br>
class="ch.qos.logback.classic.<u></u>sift.SiftingAppender"><br>
<discriminator class="ch.qos.logback.classic.<u></u>sift.MDCBasedDiscriminator"><br>
<key>SESSION_ID</key><br>
<defaultValue>unknown</<u></u>defaultValue><br>
</discriminator><br>
<sift><br>
<appender name="FILE-${SESSION_ID}"<br>
class="ch.qos.logback.core.<u></u>rolling.RollingFileAppender"><br>
<encoder><br>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS zz} %-5level [%thread] %logger{35} -<br>
%msg%n%xEx{full}</pattern><br>
</encoder><br>
<rollingPolicy class="ch.qos.logback.core.<u></u>rolling.<u></u>TimeBasedRollingPolicy"><br>
<fileNamePattern>${CONTEXT_<u></u>DATA_PATH}/logs/session/<u></u>session-${SESSION_ID}.%d{yyyy-<u></u>MM-dd}.%i.txt.zip</<u></u>fileNamePattern><br>
<<u></u>timeBasedFileNamingAndTriggeri<u></u>ngPolicy<br>
class="ch.qos.logback.core.<u></u>rolling.SizeAndTimeBasedFNATP"<u></u>><br>
<maxFileSize>100MB</<u></u>maxFileSize><br>
</<u></u>timeBasedFileNamingAndTriggeri<u></u>ngPolicy><br>
</rollingPolicy><br>
</appender><br>
</sift><br>
</appender><br>
<br>
Thanks!<br>
-- TJ<br>
</blockquote>
<br>
<br></div></div><span class="HOEnZb"><font color="#888888">
-- <br>
Ceki<br>
<a href="http://twitter.com/#!/ceki" target="_blank">http://twitter.com/#!/ceki</a><br>
______________________________<u></u>_________________<br>
Logback-user mailing list<br>
<a href="mailto:Logback-user@qos.ch" target="_blank">Logback-user@qos.ch</a><br>
<a href="http://mailman.qos.ch/mailman/listinfo/logback-user" target="_blank">http://mailman.qos.ch/mailman/<u></u>listinfo/logback-user</a><br>
</font></span></blockquote></div><br></div></div></div></div></div>