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

Remko Popma commented on LOG4J2-435:
------------------------------------

Robert, thanks for the feedback. I've tried to make the configuration less 
verbose and use more consistent naming. Here is what I ended up with:

{code}
  <DefaultRolloverStrategy>
    <Delete basePath="${sys:user.home}/logs" sort="MostRecentFirst" 
maxDepth="2">
      <!-- All conditions must hold for a file to be deleted. -->
      <IfLastModified age="7d" /> <!-- delete if 7 days or older -->
      <IfAny> <!-- either one of the nested conditions must be true -->
        <IfTotalFileSizeExceeds size="100 MB" /> <!-- delete all files 
following the first 100 MB-->
        <IfTotalFileCountExceeds count="100" /> <!-- delete all files following 
the first 100 files -->
      </IfAny>
    </Delete> 
  </DefaultRolloverStrategy>
{code}

* {{<And>}} is implicit. By default, all conditions in the {{<Delete>}} element 
must hold for a file to be deleted.
* Renamed {{<Or>}} to {{<IfAny>}}. Similarly renamed {{<And>}} to {{<IfAll>}} 
and {{<Not>}} to {{<IfNot>}}.
* Renamed file size/count conditions to start with "If".
* Changed "duration" attribute to "age".
* {{Sort}} is not an element any more but is now an attribute of the 
{{<Delete>}} element. If omitted, the default is MostRecentFirst (sorted by the 
LastModified attribute). The other option is DepthFirst.

Finally, Delete is not limited to rolled over files. I will clarify this in the 
documentation.

> 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-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-dev-h...@logging.apache.org

Reply via email to