From: Warren F. <wfr...@gm...> - 2005-02-22 23:04:46
|
Hi, We have been using the Log4perl module, with synchronized file appenders, on a low-traffic beta website for several months now. We have had no incidents at all until this morning, when this error started appearing on each request: error: Can't call method "SUPER::log" on an undefined value at /usr/local/lib/perl5/site_perl/5.8.6/Log/Log4perl/Appender/Synchronized.pm line 71. context: ... 67: 68: # Relay that to the SUPER class which needs to render the 69: # message according to the appender's layout, first. 70: $Log::Log4perl::caller_depth +=2; 71: $self->{app}->SUPER::log(\%params, 72: $params{log4p_category}, 73: $params{log4p_level}); 74: $Log::Log4perl::caller_depth -=2; 75: ... code stack: /usr/local/lib/perl5/site_perl/5.8.6/Log/Log4perl/Appender/Synchronized.pm:71 /usr/local/lib/perl5/site_perl/5.8.6/Log/Log4perl/Appender.pm:189 (eval 369):41 /usr/local/lib/perl5/site_perl/5.8.6/Log/Log4perl/Logger.pm:684 ...(snipped)... What seems to have happened is the semaphore's pointer to the application's logger instance got lost. How this happened, I'm not at all sure. Restarting our Apache server fixed the problem, and we have not seen it since. We are running Apache with mod_perl and the Mason templating library. This morning, when the problem occurred, we were running version 0.49 of the Log::Log4perl library. I have since upgraded the server to version 0.51, hoping this may be the result of a bug that is now fixed. Any assistance with this problem is much appreciated. Thanks to the Log4perl team for providing an excellent module! Cheers, -Warren |