logging-log4j-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Leo Lima" <onl...@l3o.net>
Subject Re: Enhanced FileAppender
Date Tue, 03 Oct 2006 14:15:30 GMT
Hello Bender.

> Problem:
> A often asked issue in user list is the problem to separate log files 
> dependent on different criterias, like a client-ID in a server 
> environment, a mandant- or task-ID in scheduler applications, etc. 
> Although it is possible to achieve this with the existing log4j framework 
> all possible solutions are quite complex  or have other drawbacks (own 
> repository selector, working with different classloaders, subclass 
> concrete descendents of FileAppender).


I used a KeyFileAppender I found for that porpouse. Take a look: 
http://mail-archives.apache.org/mod_mbox/logging-log4j-user/200305.mbox/%3C9C5166762F311146951505C6790A9CF858E97D@US-VS1.corp.mpi.com%3E
I've been using it for months now.


> Solution:
> The FileAppender is supplied with a property of type FileNameBuilder 
> (Design pattern: visitor). The user-supplied implementation of this 
> Interface can build a filename based on whatever criterias (i.e. MDC, 
> global Environment, etc.). The visitor is called each time a Fileappender 
> wants to append a log message. The FileAppender holds a collection of file 
> writers for each separate file name delivered by FileNameBuilder.
> To avoid the excess of open file handles the FileAppender could watch the 
> logging activity to one particular file. If the file was not accessed 
> after let's say one hour it could be closed (this timeout could also be 
> configurable). Special care must be done if the property "append" of the 
> FileAppender is false. If the file was closed because the above timeout 
> had elapsed and then reopened later again, the file shouldn't be 
> overridden.


That's the problem I faced now that I handle over a thousand file creations 
a day... The filehandlers remain open forever. How do intend to check for 
open file handlers? A separated thread? Check on each login event? I can't 
find an easy way to do that without hindering the application or the logging 
events.

Please, take a look at it and let's please find a solution. I've even open a 
thread at users list too, but I didn't post the problem properly...

Regards,
Leo. 




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


Mime
View raw message