Kevin Goess wrote:
> Martin, see 'perldoc Log4perl::Appender::File
> 
> create_at_logtime
> The file appender typically creates its logfile in its constructor, i.e.
> at Log4perl "init()" time. This
> is desirable for most use cases, because it makes sure that file
> permission problems get detected right
> away, and not after days/weeks/months of operation when the appender
> suddenly needs to log something and
> fails because of a problem that was obvious at startup.
> 
> However, there are rare use cases where the file shouldn’t be created at
> Log4perl "init()" time, e.g. if
> the appender can’t be used by the current user although it is defined in
> the configuration file. If you
> set "create_at_logtime" to a true value, the file appender will try to
> create the file at log time. Note
> that this setting lets permission problems sit undetected until log
> time, which might be undesirable.

Kevin,

Thanks for pointing that out although I guess I missed this because I
was using Log::Dispatch::File (which does not have create_at_log) and
not Log::Log4perl::Appender::File. When I change to
Log::Log4perl::Appender::File and set the create_at_log it works fine.

Martin
-- 
Martin J. Evans
Easysoft Limited
http://www.easysoft.com


> 
> 
> Martin J. Evans wrote:
>> Hi,
>>
>> I have a number of daemon processes using Log::Log4perl and tens of
>> modules shared between them also using Log::Log4perl. All the log4perl
>> configuration is in a single file for convenience (as most modules in it
>> are common). Each perl module has its own log entry and logs to a
>> different file. The problem is there are ALOT of different log files
>> defined and Log4perl seems to open every file mentioned in the config
>> file even though only a handful might be used. e.g.,
>>
>> config:
>> log4perl.logger.XXX.module1 = INFO, MONE
>> log4perl.appender.MONE=Log::Dispatch::File
>> log4perl.appender.MONE.filename=/tmp/file1.log
>>
>> log4perl.logger.XXX.module2 = INFO, MTWO
>> log4perl.appender.MTWO=Log::Dispatch::File
>> log4perl.appender.MTWO.filename=/tmp/file2.log
>> .
>> .
>> .
>> etc
>>
>> and daemon1 uses module XXX::module1 but not XXX.module2, the
>> /tmp/file2.log is opened in daemon1 even though it is never going to be
>> logged to. This is rather annoying since it is using up my open file
>> descriptors etc.
>>
>> Using lsof on a single daemon shows dozens of log files open even though
>> there is NO chance it will log anything to them.
>>
>> Is there any way to stop this?
>>
>> Thanks.
>>
>> Martin
>>   
> 

------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
log4perl-devel mailing list
log4perl-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/log4perl-devel

Reply via email to