Search code examples
javaexceptionloggingexception-logging

Disable logging for one exception


I have a "Duplicate entry" exception, which logging SqlExceptionHelper. I need to disable logging only this exception. How can I do it?


Solution

  • I am assuming you are using Log4j for your logging. You may want to explore ExpressionFilter.

    I am appending a sample configuration, you can take it from there, hopefully.

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
    <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
        <appender name="CONSOLE">
            <param name="Target" value="System.out"/>
            <layout>
                <param name="ConversionPattern" value="%d %p [%c] - %m%n"/>
            </layout>
            <filter class="org.apache.log4j.filter.ExpressionFilter">
                <param name="expression" value="EXCEPTION ~= SqlExceptionHelper" />
                <param name="acceptOnMatch" value="false"/>
            </filter>
        </appender>
        <root>
            <priority value ="INFO" />
            <appender-ref ref="CONSOLE"/>
        </root>
    </log4j:configuration>