|
From: Martin J. E. <mar...@ea...> - 2006-03-03 14:16:52
|
Hi,
I am using log4perl extensively in a number of daemon processes and running out
of file descriptors. To investigate I ran:
perl -e 'use Log::Log4perl qw(get_logger
:levels);Log::Log4perl->init_and_watch("/etc/log4.conf", 10);sleep 600;'
and then ran lsof to see what open files there were in this process. I was
surprised to see every log file named in my log4.conf file under
"appender.XX.filename" had been created and was open. This may be my
misunderstanding of the way log4perl works but it is undesirable for me so I
wondered if either a) these log files should not be open or b) if my conf file
was wrong. Given:
log4perl.logger.Server = WARN
log4perl.logger.Server.Markets.Close = DEBUG, A1
log4perl.appender.A1=Log::Dispatch::File
log4perl.appender.A1.filename=/tmp/markets_close.log
log4perl.appender.A1.mode=append
log4perl.appender.A1.layout=Log::Log4perl::Layout::PatternLayout
log4perl.appender.A1.layout.ConversionPattern=%d %p> %F{1}:%L %M - %m%n
log4perl.appender.A1.Threshold=INFO
log4perl.logger.Server.CGI.Post = DEBUG, A3
log4perl.appender.A3=Log::Dispatch::File
log4perl.appender.A3.filename=/tmp/cgi_post.log
log4perl.appender.A3.mode=append
log4perl.appender.A3.layout=Log::Log4perl::Layout::PatternLayout
log4perl.appender.A3.layout.ConversionPattern=%d %p> %F{1}:%L %M - %m%n
log4perl.logger.Server.Queued = DEBUG, A5
log4perl.appender.A5=Log::Dispatch::File
log4perl.appender.A5.filename=/tmp/queued.log
log4perl.appender.A5.mode=append
log4perl.appender.A5.layout=Log::Log4perl::Layout::PatternLayout
log4perl.appender.A5.layout.ConversionPattern=%d %p> %F{1}:%L %M - %m%n
why are A1.filename, A3.filename and A5.filename all created and open when I
run the above Perl. I would have expected A5.filename to be opened when I did
get_logger("Server::Queued") but no files other than log4.conf to be open when
all I've done is init_and_watch.
Any ideas.
Martin
--
Martin J. Evans
Easysoft Ltd, UK
http://www.easysoft.com
|