[
https://issues.apache.org/jira/browse/LOG4J2-435?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15028067#comment-15028067
]
Remko Popma edited comment on LOG4J2-435 at 11/26/15 5:04 AM:
--------------------------------------------------------------
Interesting discussion. I agree with Ralph that scripts will provide the most
power and flexibility to users, but I think a small set of predefined
conditions for common use cases would be useful so that users don't have to
reinvent the wheel each time. Common conditions would include:
* IfLastModified - matches files whose age exceeds the specified duration
* IfFileName - matches files whose name matches the specified glob or regex (I
just discovered
[PathMatcher|https://docs.oracle.com/javase/7/docs/api/java/nio/file/FileSystem.html#getPathMatcher(java.lang.String)]
so I can throw out my custom code)
* IfAll, IfAny, IfNot - composite conditions
Robert's use case of keeping the most recent files up to some number of files
or total file size is interesting. It requires sorting the files before passing
them to the conditions, which is also useful (or even necessary?) for a future
script condition. The only problem I had was finding clear names that explain
what these conditions do. (Robert, note that the term Filter already means
[something different|http://logging.apache.org/log4j/2.x/manual/filters.html]
in log4j.)
I am going to settle on IfAccumulatedFileSize and IfAccumulatedFileCount,
respectively.
As discussed, the Delete element can be nested in the DefaultRolloverStrategy
element (so it is triggered with each rollover), or in the ScheduledItem
element that Ralph just added.
was (Author: [email protected]):
Interesting discussion. I agree with Ralph that scripts will provide the most
power and flexibility to users, but I think a small set of predefined
conditions for common use cases would be useful so that users don't have to
reinvent the wheel each time. Common conditions would include:
* IfLastModified - matches files whose age exceeds the specified duration
* IfFileName - matches files whose name matches the glob or regex (I just
discovered
[PathMatcher|https://docs.oracle.com/javase/7/docs/api/java/nio/file/PathMatcher.html]
so I can throw out my custom code)
* IfAll, IfAny, IfNot - composite conditions
Robert's use case of keeping the most recent files up to some number of files
or total file size is interesting. It requires sorting the files before passing
them to the conditions, which is also useful (or even necessary?) for a future
script condition. The only problem I had was finding clear names that explain
what these conditions do. (Robert, note that the term Filter already means
[something different|http://logging.apache.org/log4j/2.x/manual/filters.html]
in log4j.)
I am going to settle on IfAccumulatedFileSize and IfAccumulatedFileCount,
respectively.
As discussed, the Delete element can be nested in the DefaultRolloverStrategy
element (so it is triggered with each rollover), or in the ScheduledItem
element that Ralph just added.
> 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: [email protected]
For additional commands, e-mail: [email protected]