I have added the FallbackErrorHandler in my XML config for failover if
the JDBC appender fails.

The JDBC appender is under control of the ASYNC appender.

In my test I deliberately shutdown MySQL to cause DB access failure.
FallbackErrorHandler does pick up on the failure and attempts to switch
over. Unfortunately in the error routine when the following line is
called the thread locks indefinitely. I can't seem to even step into it.

l.removeAppender(primary);

Has anyone else run into this problem? Below is my XML config for
review. I urgently need this resolved and would appreciate any help.

Thanks Al Harper


<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/";>
        <!-- =================Appenders for CSF=================-->
        <appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
                <param name="BufferSize" value="1"/>
                <appender-ref ref="CSF_JDBC"/>
        </appender>
        
        <appender name="CSF_FILE"
class="org.apache.log4j.RollingFileAppender">
                <param name="Threshold" value="DEBUG"/>
                <param name="File"
value="C:/selfserv/logs/platformimpl.html"/>
                <param name="Append" value="true"/>
                <param name="MaxFileSize" value="500KB"/>
                <param name="MaxBackupIndex" value="1"/>
                <layout class="org.apache.log4j.HTMLLayout"/>
        </appender>
        
        <!--JDBC-->
        <appender name="CSF_JDBC"
class="org.apache.log4j.jdbc.JDBCAppender">
         <errorHandler
class="org.apache.log4j.varia.FallbackErrorHandler">
            <logger-ref ref="PlatformImpl"/>
            <appender-ref ref="CSF_FILE"/>
          </errorHandler>
                <param name="BufferSize" value="1"/>
                <param name="Threshold" value="DEBUG"/>
                <param name="driver" value="com.mysql.jdbc.Driver"/>
                <param name="URL"
value="jdbc:mysql://localhost:3306/logtest?autoReconnect=true"/>
                <param name="user" value="aharper"/>
                <param name="password" value="aharper"/>
                <param name="sql" value="insert into %X{table} (id,
cor_key, date, fileName, lineNumber, message) values (0, '%X{key}',
'%d', '%F', '%L', '%m')"/>
        </appender>
        
        <appender name="CONSOLE"
class="org.apache.log4j.ConsoleAppender">
                <param name="Target" value="System.out"/>
                <param name="Threshold" value="DEBUG"/>
                <layout class="org.apache.log4j.PatternLayout">
                        <param name="ConversionPattern" value="%d, %F,
%L, %m%n"/>
                </layout>
        </appender>
        
        <logger name="PlatformImpl">
                <level value="DEBUG"/>
                <appender-ref ref="ASYNC"/>
<!--            <appender-ref ref="CSF_FILE"/>   -->
                <appender-ref ref="CONSOLE"/>
        </logger>
        <!--
        <root>
                <level value="DEBUG"/>
                <appender-ref ref="ASYNC"/>
                <appender-ref ref="CSF_FILE"/>
                <appender-ref ref="CONSOLE"/>
        </root>
-->
</log4j:configuration>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to