You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-user@logging.apache.org by Jason Calabrese <ma...@jasoncalabrese.com> on 2005/04/27 17:21:01 UTC

ExternallyRolledFileAppender

Hi everyone,

I was just about to start using the ExternallyRolledFileAppender when I 
noticed that it was removed from cvs.

Why was it removed?  Has it been replaced by something else.

We need to be able to use something like like so we can roll the log files 
when we are about to back logs.

--Jason

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-user-help@logging.apache.org


Re: ExternallyRolledFileAppender

Posted by Curt Arnold <ca...@houston.rr.com>.
On Apr 27, 2005, at 5:33 PM, Jason Calabrese wrote:

> Thank for the response Curt.
>
> On Wednesday 27 April 2005 10:30 am, Curt Arnold wrote:
>> I wasn't aware of an ExternallyRolledFileAppender and didn't see it in
>> the obvious places in the CVS attic.
>
> http://cvs.apache.org/viewcvs.cgi/logging-log4j/src/java/org/apache/ 
> log4j/varia/ExternallyRolledFileAppender.java? 
> hideattic=0&rev=1.15&view=markup

Thanks.  I'm not really familiar with the varia tree.

>
>> log4j 1.3 adds a new architecture for rolling file appenders with
>> pluggable triggering and naming policies.  In addition to the time and
>> size based triggers to support log4j 1.2 rolling behaviors,
>> o.a.l.rolling.FilterBasedTrigger (in CVS but not in any release yet)
>> can be used to force rolling based on the content of a message and if
>> that is not adequate you could develop your own trigger.  If either
>> case, you will need to dispatch a message to force evaluation of the
>> trigger.
>
> This sounds like a much cleaner model, but I won't be able to use it  
> in my
> applications until 1.3 is at least a RC.
>

Other log4j 1.2 rolling file appenders  
(org.apache.log4j.RollingFileAppender and DailyRollingFileAppender) had  
been removed from the CVS.  To allow applications that had been using  
them to migrate to log4j 1.3, I created emulations based on the new  
framework that should be functionally equivalent.  Likely the  
ExternallyRollingFileAppender was removed at the same time.  I'll have  
need to investigate the history and see if a similar emulation is  
warranted.  If so, then your app could continue to use  
ExternalRollingFileAppender in both log4j 1.2 and 1.3 until ready to  
commit to 1.3.

Are there any other RollingAppenders that have disappeared?



>> To see an example of message triggered rolling see
>> tests/input/rolling/filter1.xml and
>> tests/src/java/org/apache/log4j/rolling/FilterBasedRollingTest.java.
>>
>> I would appreciate any feedback, positive or otherwise.
>>
>> p.s. The signature for  
>> o.a.l.Rolling.TriggeringPolicy.isTriggeringEvent
>> is likely to change.  The File parameter is used in the size based
>> trigger, but the size returned from File.length() is unreliable during
>> logging on Windows.  My current thinking is to keep a running size of
>> the log within the appender and pass that to the trigger which might
>> result in a signature like:
>>
>> boolean isTriggeringEvent(final Appender appender, final long length,
>> final LoggingEvent event);
>
> Why not continue to pass in the file, it could be used for other  
> triggers
> besides length.

I included the appender parameter to attempt to provide for  
"unexpected" triggers and to preserve the ability to obtain the File by  
interrogating the appender.  However, very little in the File object  
would be current while it is open for appending so I saw very little  
utility to have it directly available.  There  is no code backing this  
up at the moment and it would be no big deal to add it if there is some  
justification.


---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-user-help@logging.apache.org


Re: ExternallyRolledFileAppender

Posted by Jason Calabrese <ma...@jasoncalabrese.com>.
Thank for the response Curt.

On Wednesday 27 April 2005 10:30 am, Curt Arnold wrote:
> I wasn't aware of an ExternallyRolledFileAppender and didn't see it in
> the obvious places in the CVS attic.

http://cvs.apache.org/viewcvs.cgi/logging-log4j/src/java/org/apache/log4j/varia/ExternallyRolledFileAppender.java?hideattic=0&rev=1.15&view=markup

> log4j 1.3 adds a new architecture for rolling file appenders with
> pluggable triggering and naming policies.  In addition to the time and
> size based triggers to support log4j 1.2 rolling behaviors,
> o.a.l.rolling.FilterBasedTrigger (in CVS but not in any release yet)
> can be used to force rolling based on the content of a message and if
> that is not adequate you could develop your own trigger.  If either
> case, you will need to dispatch a message to force evaluation of the
> trigger.

This sounds like a much cleaner model, but I won't be able to use it in my 
applications until 1.3 is at least a RC.

> To see an example of message triggered rolling see
> tests/input/rolling/filter1.xml and
> tests/src/java/org/apache/log4j/rolling/FilterBasedRollingTest.java.
>
> I would appreciate any feedback, positive or otherwise.
>
> p.s. The signature for o.a.l.Rolling.TriggeringPolicy.isTriggeringEvent
> is likely to change.  The File parameter is used in the size based
> trigger, but the size returned from File.length() is unreliable during
> logging on Windows.  My current thinking is to keep a running size of
> the log within the appender and pass that to the trigger which might
> result in a signature like:
>
> boolean isTriggeringEvent(final Appender appender, final long length,
> final LoggingEvent event);

Why not continue to pass in the file, it could be used for other triggers 
besides length.


--Jason

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-user-help@logging.apache.org


Re: ExternallyRolledFileAppender

Posted by Curt Arnold <ca...@apache.org>.
On Apr 27, 2005, at 10:21 AM, Jason Calabrese wrote:

> Hi everyone,
>
> I was just about to start using the ExternallyRolledFileAppender when I
> noticed that it was removed from cvs.
>
> Why was it removed?  Has it been replaced by something else.


I wasn't aware of an ExternallyRolledFileAppender and didn't see it in 
the obvious places in the CVS attic.

log4j 1.3 adds a new architecture for rolling file appenders with 
pluggable triggering and naming policies.  In addition to the time and 
size based triggers to support log4j 1.2 rolling behaviors, 
o.a.l.rolling.FilterBasedTrigger (in CVS but not in any release yet) 
can be used to force rolling based on the content of a message and if 
that is not adequate you could develop your own trigger.  If either 
case, you will need to dispatch a message to force evaluation of the 
trigger.

To see an example of message triggered rolling see 
tests/input/rolling/filter1.xml and 
tests/src/java/org/apache/log4j/rolling/FilterBasedRollingTest.java.

I would appreciate any feedback, positive or otherwise.

p.s. The signature for o.a.l.Rolling.TriggeringPolicy.isTriggeringEvent 
is likely to change.  The File parameter is used in the size based 
trigger, but the size returned from File.length() is unreliable during 
logging on Windows.  My current thinking is to keep a running size of 
the log within the appender and pass that to the trigger which might 
result in a signature like:

boolean isTriggeringEvent(final Appender appender, final long length, 
final LoggingEvent event);


---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-user-help@logging.apache.org