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 |