I have a "Duplicate entry" exception, which logging SqlExceptionHelper
. I need to disable logging only this exception. How can I do it?
Disable logging for one exception
Asked Answered
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>
I can filter by text, or only by class? –
Neoteny
If you are using log4j2
<Logger name="org.hibernate.engine.jdbc.spi.SqlExceptionHelper" level="OFF" additivity="false">
<AppenderRef ref="Console" />
</Logger>
You can catch the exception and do nothing
try {
method();
} catch(ConstraintViolationException e){}
This exception throws in hibernate's saveOrUpdate method. I catch it later. –
Neoteny
It is a very bad habit to suppress exceptions –
Shakti
© 2022 - 2024 — McMap. All rights reserved.