From: Mike S. <m...@pe...> - 2007-12-01 00:39:47
|
On Fri, 23 Nov 2007, Johannes Kilian wrote: > 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 .. Hmm, the following works for me: use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($DEBUG); eval { LOGDIE "Waah!"; }; print "Survived!\n"; and prints 2007/11/30 17:38:48 Waah! Survived! Do you have a __DIE__ handler defined somewhere by any chance? -- Mike Mike Schilli m...@pe... > 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 > |