Forwarded with permission:

 ---------- Forwarded message ---------- From: "Strahan, Bob"
<[EMAIL PROTECTED]> To: "[EMAIL PROTECTED]"
<[EMAIL PROTECTED]> Subject: log4perl causing perl process to die
Date: Fri, 2 Nov 2007 20:05:37 +0000

Hi

I am using log4perl in a Win32 service that needs to run forever..  However, I 
have encountered a situation where the logger call is executing a die() and 
causing my service to die...


The service spawns multiple child processes which run concurrently but all log 
to the same logfile.. We're using File::Locked to avoid contention..  Extract 
from our logger config below..

"log4perl.appender.myapp" => "Log::Dispatch::File::Locked",
"log4perl.appender.myapp.filename" => "D:/Program Files (x86)/My 
App/logs/logfile.txt",
"log4perl.appender.myapp.mode" => "append",
"log4perl.appender.myapp.close_after_write" => "true",
"log4perl.appender.myapp.permissions" => "0660",
Etc..


However, it seems that if certain filesystem operations are performed on the 
logfile it can cause the logger to execute die(), causing my service to die, 
with the following error

Cannot write to 'D:/Program Files (x86)/My App/logs/logfile.txt': Permission 
denied at D:\Program Files (x86)\My App\lib\perllibs\lib/Log/Dispatch/File.pm 
line 86.


I can reproduce the problem sporadically by simply opening the logfile in 
Wordpad..
I can reproduce it reliably by repeatedly copying the logfile using test script 
below

#!perl -w
use File::Copy ;
while (1) {
   copy ("D:/Program Files (x86)/My App/logs/logfile.txt", "D:/Program Files 
(x86)/My App/logs/logfileCOPY.txt") ;
   print "." ;
}


Any suggestions on how to defend against users copying or opening the logfile?  
 We should block and retry until open() suceeds, rather than die(), I think.

Please let me know if you can help with a patch, workaround, or suggestion.

Regards



Bob Strahan
HP Software, R&D

703.579.1929 office | 702.967.5228 mobile | 702.579.1929 fax | [EMAIL 
PROTECTED]<mailto:[EMAIL PROTECTED]>
10700 Parkridge Blvd. #500 | Reston | VA 20191


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
log4perl-devel mailing list
log4perl-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/log4perl-devel

Reply via email to