为一个异常禁用日志记录
Disable logging for one exception
我有一个 "Duplicate entry" 异常,记录 SqlExceptionHelper
。我只需要禁用此异常的日志记录。我该怎么做?
我假设您正在使用 Log4j 进行日志记录。您可能想探索 ExpressionFilter
.
我正在附加示例配置,希望您可以从那里获取它。
<?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>
你可以捕获异常而不做任何事情
try {
method();
} catch(ConstraintViolationException e){}
如果您使用的是 log4j2
<Logger name="org.hibernate.engine.jdbc.spi.SqlExceptionHelper" level="OFF" additivity="false">
<AppenderRef ref="Console" />
</Logger>
我有一个 "Duplicate entry" 异常,记录 SqlExceptionHelper
。我只需要禁用此异常的日志记录。我该怎么做?
我假设您正在使用 Log4j 进行日志记录。您可能想探索 ExpressionFilter
.
我正在附加示例配置,希望您可以从那里获取它。
<?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>
你可以捕获异常而不做任何事情
try {
method();
} catch(ConstraintViolationException e){}
如果您使用的是 log4j2
<Logger name="org.hibernate.engine.jdbc.spi.SqlExceptionHelper" level="OFF" additivity="false">
<AppenderRef ref="Console" />
</Logger>