Hello Tushar,

Have it been that simple I had done it before ...
Changing the time pattern would indeed solve the size trigger, as the filename would be different from the minute before, but would also change the schedule I want regarding timed rolling.

Check Simon Park's site, you'll see a great comparison table indicating this limit (Roll by time AND by size), and best of all an appender implementation answering this need.
http://www.simonsite.org.uk/comparison.htm

Olivier

On 06/07/2011 23:43, Tushar Kapila wrote:
Add hour and minute to file name pattern

On 7/5/11, Olivier Jaquemet<[email protected]>  wrote:
Hi,

I am trying to get log4j to roll log file on a timely basis (weekly),
while also splitting log files which grow too big.
Exactly the same thing provided in logback through SizeAndTimeBasedFNATP :
http://logback.qos.ch/manual/appenders.html#SizeAndTimeBasedFNATP

In order to do that I tried 2 different approach, both fails for
different reasons.

1. Using a TimeBasedRollingPolicy, with an added SizeBasedTriggeringPolicy
Problem: The SizeBasedTriggeringPolicy does indeed request a rollover,
but because the filename does not change for the TimeBasedRollingPolicy,
nothing happens (even though the rollover() method is called).

<appender name="ROLLFILE"
class="org.apache.log4j.rolling.RollingFileAppender">
<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="FileNamePattern" value="/wombat/folder/foo.%d{yyyy-MM-dd}.gz"/>
</rollingPolicy>
<triggeringPolicy
class="org.apache.log4j.rolling.SizeBasedTriggeringPolicy">
<param name="MaxFileSize" value="10240"/>
</triggeringPolicy>
</appender>

This simple approach fails because I am not using the
TimeBasedRollingPolicy as it was conceived. I can understand that, so
let just forget about this one and just move on to the second approach...

2. Using a FixedWindowRollingPolicy, and using a composite triggering
policy with both a TimeBasedRollingPolicy and a SizeBasedTriggeringPolicy.

Problem : The TimeBasedRollingPolicy does not work when used as a
TriggeringPolicy. The implementation of isTriggeringEvent(..) depends on
a 'nextCheck' variable which is only updated through rollover() method
(not invoked because it is not being used as the the rolling policy).
->  If TimeBasedRollingPolicy implements the TriggeringPolicy, I think it
should support being used only this way.
Also, as a side note, it would have been nice if the
CompositeTriggeringPolicy java was providing an XML example of the
declaration, I add to find the commit of this class to know how to use
it (and indicate that warnings during the XML parsing is normal, or
better find a way to remove those warnings).

<appender name="ROLLFILE"
class="org.apache.log4j.rolling.RollingFileAppender">
<rollingPolicy class="org.apache.log4j.rolling.FixedWindowRollingPolicy">
<param name="ActiveFileName" value="/wombat/folder/foo.log"/>
<param name="FileNamePattern" value="/wombat/folder/foo.%i.log.gz"/>
</rollingPolicy>

<triggeringPolicy
class="org.apache.log4j.rolling.CompositeTriggeringPolicy">
<triggeringPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="FileNamePattern" value="%d{yyyy-MM-dd}"/>
</triggeringPolicy>
<triggeringPolicy
class="org.apache.log4j.rolling.SizeBasedTriggeringPolicy">
<param name="MaxFileSize" value="10240"/>
</triggeringPolicy>
</triggeringPolicy>
</appender>

Is there any log4j commiter that could check my analysis and potentially
provide a fix/workaround ?
Otherwise, is there any other way to do time+size rolling ?

Any help is really appreciated.
Olivier

--
@OlivierJaquemet



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]



--
Olivier Jaquemet<[email protected]>
Ingénieur R&D Jalios S.A. - http://www.jalios.com/
@OlivierJaquemet +33970461480



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to