From: Kevin G. <ke...@go...> - 2003-06-20 15:25:03
|
Maxim Maltchevski wrote: > Hi everyone: > the IIS 5.0 with PerlEx.dll for the Active State Perl > 5.6.0 build 633 and have intermittent problems with > Log4perl being unable to precompile whenever I change > the script. I'm using Log::Dispatch::File as my > Appender and the error seems to be related to it: > > Precompiler: Eval Error: > > Package:[PerlEx::Precompiler::c_::wwwroot::archive::cgi_2dbin::survey_asp] > File:[C:\wwwroot\archive\cgi-bin\survey.asp] > Error:[Can't call method "log" on an undefined value > at c:/Perl/site/lib/Log/Log4perl/Appender.pm line 177. > ] > Precompiler: Returning -1 at > 594 > > The module where Log4perl is called is inside the > BEGIN block and it looks like like the Appender's new > method fails to create an object correctly. If I > restart IIS, the error goes away but I feel > uncomfortable to use the script in production without > knowing what's causing the problem. Are there any > patches I need to apply to use Log4perl with PerlEx? Not having worked with PerlEx either I'm going out on a limb here, but from reading the documentation I think it has to do with the way PerlEx persists across invocations and the way Log4perl loads modules dynamically using 'eval'. If you change your script without restarting IIS maybe PerlEx reloads *part* of Log4perl's data structures as it recompiles your script. Restarting IIS gives you a clean slate. That's my guess. Do you ever see the error when you *don't* change your script? -- Happy Trails . . . Kevin M. Goess (and Anne and Frank) 904 Carmel Ave. Albany, CA 94706 (510) 525-5217 |