[
http://jira.qos.ch/browse/LBCORE-147?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12092#action_12092
]
Ceki Gulcu commented on LBCORE-147:
-----------------------------------
I've spent some time tinkering with various approaches to solve this problem.
Launching a scavenging thread sounds like overkill.
The problem stems from the application being quiescent/inactive. If Q is the
number of periods where the application was inactive, H is the value of
maxHistory and C the current period, then it is sufficient to delete files in
interval ranging from (C - H) to (C - (Q+H)) to address the issue at hand, i.e.
this bug report. Moreover, it is sufficient to perform deletion of files in the
said range only once, when the application starts. Of course, the problem with
this approach is that while the values of H and C are known by logback, the
value of Q is not.
If there exists a value maxQ such that Q is always smaller than maxQ, we can
check and delete all files in the range (C - H) to (C - (maxQ+H)) at
application start up. If maxQ is 60 days, then for daily rollover maxQ
corresponds to 60 periods and for monthly rollovers to 2 periods. For hourly
rollover, it corresponds to 1440 (=60*24) periods, rather a large number. As
long as the deletion method is somewhat optimized, the approach just described
should work reasonably well even in the case of hourly rollover.
> RollingPolicy MaxHistory not deleting old files
> -----------------------------------------------
>
> Key: LBCORE-147
> URL: http://jira.qos.ch/browse/LBCORE-147
> Project: logback-core
> Issue Type: Bug
> Components: Rolling
> Affects Versions: 0.9.18
> Environment: linux 2.6.18 64bits apache-tomcat-6.0.20 java/jre1.6.0_18
> Reporter: Rafael Diaz Maurin
> Assignee: Ceki Gulcu
> Attachments: TimeBasedRollingWithArchiveRemovalTest.java
>
>
> The MaxHistory does not do the trick : the old files are not deleted at all :
> cat logging.xml
> <appender name="IDP_ACCESS"
> class="ch.qos.logback.core.rolling.RollingFileAppender">
> <File>/shibboleth-idp/logs/idp-access.log</File>
> <Append>false</Append>
> <ImmediateFlush>true</ImmediateFlush>
> <RollingPolicy
> class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
>
> <FileNamePattern>/shibboleth-idp/logs/old/idp-access-%d{yyyy-MM-dd_HH-mm}.log.gz</FileNamePattern>
> <MaxHistory>3</MaxHistory>
> </RollingPolicy>
> <layout class="ch.qos.logback.classic.PatternLayout">
> <Pattern>%msg%n</Pattern>
> </layout>
> </appender>
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.qos.ch/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
_______________________________________________
logback-dev mailing list
[email protected]
http://qos.ch/mailman/listinfo/logback-dev