Discussion:
DefaultRolloverStrategy max attribute and IfAccumulatedFileCount
Benjamin Jaton
2016-10-18 18:03:02 UTC
Permalink
Hello,

I wonder about the relationship between the max attribute and the
IfAccumulatedFileCount.

I had wrongly assumed that if you used the Delete policy, then the max
attribute wasn't needed.
But that resulted in having a cap on the number of log files to 7 (which is
the DEFAULT_WINDOW_SIZE in DefaultRolloverStrategy)

In this example:
https://logging.apache.org/log4j/2.x/manual/appenders.html#DefaultRolloverStrategy

<DefaultRolloverStrategy max="100">
<Delete basePath="${baseDir}" maxDepth="2">
<IfFileName glob="*/app-*.log.gz">
<IfLastModified age="30d">
<IfAny>
<IfAccumulatedFileSize exceeds="100 GB" />
<IfAccumulatedFileCount exceeds="10" />
</IfAny>
</IfLastModified>
</IfFileName>
</Delete>
</DefaultRolloverStrategy>

max is cleverly set to 100, when IfAccumulatedFileCount is set to 10.

Could we reasonably assume that max is not very useful here?

I'm thinking about setting it to the same value, or just setting max to a
very high value (1000000).

Thoughts?
Remko Popma
2016-10-18 22:39:31 UTC
Permalink
You need to explicitly set max if you want to keep more files around than the default. The Delete action is currently not aware of max.

I'm not sure if it would be a good idea to change that and for example automatically ignore the (implicit or explicit) max value when a Delete rule is configured.

Sent from my iPhone
Post by Benjamin Jaton
Hello,
I wonder about the relationship between the max attribute and the
IfAccumulatedFileCount.
I had wrongly assumed that if you used the Delete policy, then the max
attribute wasn't needed.
But that resulted in having a cap on the number of log files to 7 (which is
the DEFAULT_WINDOW_SIZE in DefaultRolloverStrategy)
https://logging.apache.org/log4j/2.x/manual/appenders.html#DefaultRolloverStrategy
<DefaultRolloverStrategy max="100">
<Delete basePath="${baseDir}" maxDepth="2">
<IfFileName glob="*/app-*.log.gz">
<IfLastModified age="30d">
<IfAny>
<IfAccumulatedFileSize exceeds="100 GB" />
<IfAccumulatedFileCount exceeds="10" />
</IfAny>
</IfLastModified>
</IfFileName>
</Delete>
</DefaultRolloverStrategy>
max is cleverly set to 100, when IfAccumulatedFileCount is set to 10.
Could we reasonably assume that max is not very useful here?
I'm thinking about setting it to the same value, or just setting max to a
very high value (1000000).
Thoughts?
---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-***@logging.apache.org
For additional commands, e-mail: log4j-user-***@logging.apache.org
Loading...