|
From: Johannes K. <Jo....@gm...> - 2007-11-23 10:51:17
|
Hi,
I've encounterd a view problems with "uninitialized root-logger" log-log4perl (currently using Version1.12):
System:
ActiveStatePerl 5.8.8.817
WinXP SP2
Log::Log4Perl 1.12
Using my "traditional" log4perl configuration file (used from 0.51 on) the 1.12 Version shows following behaviour (which I didn't notice with earlier versions ...):
1.) Initializing log4perl works without any errors
2.) Getting loggers works without any errors
3.) Using $logger->logdie(...) (and other functions dieing, like $logger->error_die(...)) makes the program die IMMEDIATELY; I'm not able to catch the die-exception within an eval{} block -> WHY??? - I'm sure it worked with earlier versions of log4perl ..
4.) Finishing my program an error from log4perl occurs: (in cleanup) Internal error: Root Logger not initialized. at C:/Programme/Perl/site/lib/Log/Log4perl/Logger.pm line 557 during global destruction.
What's going on? What can I do to make $logger->logdie(...) to be catchable with eval{} again?
Any help welcome ...
Johannes
As an appendix, my Log4perl-configuration (quite complex):
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE log4perl:configuration SYSTEM "log4perl.dtd">
<log4perl:configuration xmlns:log4perl="http://log4perl.sourceforge.net/"
threshold="debug"
oneMessagePerAppender="true">
<!--- *************************************************************************************** -->
<!-- *** APPENDER ************************************************************************** -->
<!-- *************************************************************************************** -->
<log4perl:appender name="AppGeneralFile"
class="Log::Log4perl::Appender::File">
<param name="filename"
value="sub { Vitronic::BuildSteps::MiscBuildStep::getLogfileName('TYPE' => 'FULL'); };" />
<param name="mode"
value="write" />
<param name="autoflush"
value="1" />
<filter-ref id="FilterInfo" />
<log4perl:layout name="LayoutDateTimeClass"
class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d %p [%c]: %m%n" />
</log4perl:layout>
</log4perl:appender>
<log4perl:appender name="AppErrorFile"
class="Log::Log4perl::Appender::File">
<param name="filename"
value="sub { Vitronic::BuildSteps::MiscBuildStep::getLogfileName('TYPE' => 'ERR'); };" />
<param name="mode"
value="write" />
<param name="autoflush"
value="1" />
<filter-ref id="FilterErr" />
<log4perl:layout name="LayoutDateTimeClass"
class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d %p [%c]: %m%n" />
</log4perl:layout>
</log4perl:appender>
<log4perl:appender name="AppGeneralScreen"
class="Log::Log4perl::Appender::Screen">
<filter-ref id="FilterInfo" />
<log4perl:layout name="LayoutDateTimeClass"
class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d %p [%c]: %m%n" />
</log4perl:layout>
</log4perl:appender>
<log4perl:appender name="AppDebugFile"
class="Log::Log4perl::Appender::File">
<param name="filename"
value="sub { Vitronic::BuildSteps::MiscBuildStep::getLogfileName('TYPE' => 'DEBUG'); };" />
<param name="mode"
value="write" />
<param name="autoflush"
value="1" />
<filter-ref id="FilterAll" />
<log4perl:layout name="LayoutDateTimeClass"
class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d{HH:mm:ss} [%c] %p: %m%n" />
</log4perl:layout>
</log4perl:appender>
<log4perl:appender name="AppSqlFile"
class="Log::Log4perl::Appender::File">
<param name="filename"
value="sub { Vitronic::BuildSteps::MiscBuildStep::getLogfileName('TYPE' => 'SQL'); };" />
<param name="mode"
value="write" />
<param name="autoflush"
value="1" />
<filter-ref id="FilterAll" />
<log4perl:layout name="LayoutDateTimeClass"
class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d %p [%c]: %m%n" />
</log4perl:layout>
</log4perl:appender>
<!-- *** FILTER **************************************************************************** -->
<log4perl:appender name="DebugSyncer"
class="Log::Log4perl::Appender::Synchronized">
<param name="appender"
value="AppDebugFile" />
</log4perl:appender>
<!-- *************************************************************************************** -->
<!-- *** FILTER **************************************************************************** -->
<!-- *************************************************************************************** -->
<log4perl:filter name="FilterAll"
class="Log::Log4perl::Filter::LevelRange">
<param name="LevelMin"
value="DEBUG" />
<param name="LevelMax"
value="FATAL" />
<param name="AcceptOnMatch"
value="true" />
</log4perl:filter>
<log4perl:filter name="FilterInfo"
class="Log::Log4perl::Filter::LevelRange">
<param name="LevelMin"
value="INFO" />
<param name="LevelMax"
value="FATAL" />
<param name="AcceptOnMatch"
value="true" />
</log4perl:filter>
<log4perl:filter name="FilterErr"
class="Log::Log4perl::Filter::LevelRange">
<param name="LevelMin"
value="ERROR" />
<param name="LevelMax"
value="FATAL" />
<param name="AcceptOnMatch"
value="true" />
</log4perl:filter>
<!-- *************************************************************************************** -->
<!-- *** CATEGORIES ************************************************************************ -->
<!-- *************************************************************************************** -->
<root>
<priority value="debug" />
<appender-ref ref="AppGeneralFile" />
<appender-ref ref="AppGeneralScreen" />
<appender-ref ref="AppErrorFile" />
</root>
<!--- *************************************************************************************** -->
<category name="dbg"
additivity="false">
<priority value="debug" />
<appender-ref ref="AppDebugFile" />
</category>
<category name="sql"
additivity="false">
<priority value="debug" />
<appender-ref ref="AppDebugFile" />
</category>
<category name="BMTK">
<priority value="info" />
<appender-ref ref="AppGeneralFile" />
</category>
<category name="Vitronic::BuildDatenbank::Tables"
additivity="false">
<priority value="info" />
<appender-ref ref="AppSqlFile" />
</category></log4perl:configuration>
--
GMX FreeMail: 1 GB Postfach, 5 E-Mail-Adressen, 10 Free SMS.
Alle Infos und kostenlose Anmeldung: http://www.gmx.net/de/go/freemail
|