logging-log4j-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Robert Schaft (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (LOG4J2-435) Feature request: auto-delete older log files
Date Wed, 25 Nov 2015 10:01:11 GMT

    [ https://issues.apache.org/jira/browse/LOG4J2-435?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15026538#comment-15026538
] 

Robert Schaft commented on LOG4J2-435:
--------------------------------------

Remko, I am not a big fan of documentation. Mainly because the documentation of problems and
details is often far away from the description of the xml.
>From my point of view, the xml must talk by itself. Therefore my suggestion that tries
to resemble the xml configuration of [RollingFileAppender|https://logging.apache.org/log4j/2.x/manual/appenders.html#RollingFileAppender]
Because of your decision, that Delete is not limited to rolled over files, from the users
perspective it is independent of the rollover strategy. It is even independent of the appender.
It is in fact not even an appender. Therefore logically the configuration might look like
this:

{code:xml}
<Configuration status="warn" name="MyApp" packages="">
  <Cleaners>
    <DirectoryMonitoringCleaner name="logArchivePurger" baseDir="logs">
    <!-- attribute depth could have a default of 255 to avoid recursion. attribute follow_links
is false per default.-->
      <FileBasedDeletionTriggers>
         <And>
           <ModificationTimeFilter minAge="90d"/>
           <SizeBasedFilter minSize="100M" />
         </And>
         <And>
           <FileNameFilter glob="**/*.log.gz" />
           <ModificationTimeFilter minAge="7dT1h" />
         </And>
         <And>
           <FileNameFilter pattern="\d+-\d{2}/app-[/]*-\d+\.log.gz" />
           <ModificationTimeFilter minAge="7d" />
         </And>
         <ModificationTimeFilter minAge="180d" />
      </FileBasedDeletionTriggers>
      <FileAggregationBasedDeletion>
        <AggregationSet>
           <FileNameFilter pattern="\d+-\d{2}/app-[/]*-\d+\.log.gz" />
           <And>
             <FileNameFilter glob="**" />
             <ModificationTimeFilter minAge="30d" />
           </And>
        </AggregationSet>
        <ModificationTimeBasedOrdering />
        <AggregationBasedDeletionTriggers>
           <FileCount count="100">
           <AccumulatedFileSize size="10gb">
           <And>
             <FileCount count="90">
             <AccumulatedFileSize size="9gb">
           </And>
        </AggregationBasedDeletionTriggers>
      </FileAggregationBasedDeletion>
    </DirectoryMonitoringCleaner>
  </Cleaners>
  <Appenders>
    <RollingFile name="RollingFile" fileName="logs/app.log"
                 filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
      <PatternLayout>
        <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
      </PatternLayout>
      <Policies>
        <TimeBasedTriggeringPolicy />
        <SizeBasedTriggeringPolicy size="250 MB"/>
      </Policies>
    </RollingFile>
  </Appenders>
  <Loggers>
    <Root level="error">
      <AppenderRef ref="RollingFile"/>
    </Root>
  </Loggers>
</Configuration>
{code}

I did not comment the configuration because the xml must be comment enough. If you don't understand
elements and what they are doing, please tell me so.


> Feature request: auto-delete older log files 
> ---------------------------------------------
>
>                 Key: LOG4J2-435
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-435
>             Project: Log4j 2
>          Issue Type: Improvement
>            Reporter: Arkin Yetis
>            Assignee: Remko Popma
>              Labels: Rollover
>             Fix For: 2.5
>
>         Attachments: LimitingRolloverStrategy.java, SizeParser.java
>
>
> Original description:
> {quote}
> DefaultRolloverStrategy max attribute only applies if you have a %i in the file pattern.
This request is to enhance DefaultRolloverStrategy or another appropriate component to allow
a max number of files limit to apply across days/months/years when a filePattern includes
a date pattern.
> {quote}
> ----
> One of the most requested features is to add the ability to Log4j to "clean up" older
log files.  This usually means deleting these files, although it could also mean moving them
to a different location, or some combination of these. 
> Users have different requirements for selecting the files to clean up. A common request
is the ability to keep the last X number of log files. This works well if rollover is only
date based but may give undesired results with size based rollover. 
> Another factor to consider is that the directory containing the log files may contain
the log files for multiple appenders, or even files unrelated to logging. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org


Mime
View raw message