[ https://issues.apache.org/jira/browse/LOG4J2-435?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15035657#comment-15035657 ]
Remko Popma edited comment on LOG4J2-435 at 12/2/15 11:43 AM: -------------------------------------------------------------- Sorry if the process is becoming annoying. In my view we are simply iteratively to improve our solution. Looking at your 3rd case "I want to keep only the last 10 files but at most 100mb from all files that match a certain name debug*.log AND that are older than 1 day", it does not have any OR conditions, only AND conditions ("but" in propositional logic is AND, not OR). So this would be: {code} int fileCounter = 0; long totalFileSize = 0L; if (fileName.matches("debug.*\\.log") && now() - modificationTime <= 1 * DAY) { totalFileSize += file.size(); if (totalFileSize > 100*MB) { if (++fileCounter > 10) { delete(file); } } } {code} This is why the corresponding XML config for case 3 above nests all the corresponding elements. To support OR, my idea is to have {code} <IfAny> <IfA> <IfB> <ThenAlsoCheck> <IfC> <IfD> </ThenAlsoCheck> </IfAny> // corresponding pseudoCode: if ( A or B ) { if (C) { if (D) { delete(); } } } {code} Do you have a suggestion for a better solution for supporting OR? was (Author: rem...@yahoo.com): Haha, sorry about that. :-) Looking at your 3rd case "I want to keep only the last 10 files but at most 100mb from all files that match a certain name debug*.log AND that are older than 1 day", it does not have any OR conditions, only AND conditions ("but" in propositional logic is AND, not OR). So this would be: {code} int fileCounter = 0; long totalFileSize = 0L; if (fileName.matches("debug.*\\.log") && now() - modificationTime <= 1 * DAY) { totalFileSize += file.size(); if (totalFileSize > 100*MB) { if (++fileCounter > 10) { delete(file); } } } {code} > 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