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
[EMAIL PROTECTED]

> 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' =&gt; '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' =&gt; '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' =&gt; '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' =&gt; '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
>

-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
log4perl-devel mailing list
log4perl-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/log4perl-devel

Reply via email to