我正在使用logback-spring.xml文件记录sql结果。而且我还使用“ SqlSessionTemplate”作为常见的jdbcTemplate来编写sql查询并从数据库中获取数据。 在这种情况下,我需要排除一些日志,因为它有很多数据,这些数据是在服务器启动时加载的,并且无用。但是如上所述,我使用相同的模板,所以我不知道如何仅从日志中过滤该查询。 我在制作如下所示的拦截器时尝试过滤它。
logback-spring.xml
<appender name="STDOUT-SQL-RESULTSET" class="ch.qos.logback.core.ConsoleAppender">
<filter class="com.common.interceptor.LogbackInterceptor" />
<encoder>
<charset>UTF-8</charset>
<pattern>%msg%n</pattern>
</encoder>
</appender>
LogbackInterceptor.java
public class LogbackInterceptor extends Filter<ILoggingEvent> {
@Override
public FilterReply decide( ILoggingEvent event ) {
if (event.getMessage().contains("NOT_SQL_LOG")) {
return FilterReply.DENY;
}else{
return FilterReply.ACCEPT;
}
}
}
messageSql.xml
<select id="retrieveMessage" parameterType="String" resultType="Message">
-- NOT_SQL_LOG
SELECT blahblah ~~
由于结果有很多行,因此仅跳过了注释行“-NOT_SQL_LOG”,其他查询和结果全部显示在控制台日志中。
当我对EvaluatorFilter感到厌倦时,服务器没有开始留下诸如“ [main] DEBUG org.springframework.boot.devtools.restart.ChangeableUrls-匹配URL以重新加载”的消息
<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
<evaluator>
<expression>return message.contains("NOT_SQL_LOG");</expression>
</evaluator>
<OnMismatch>NEUTRAL</OnMismatch>
<OnMatch>DENY</OnMatch>
</filter>
请帮助我过滤不写的特定查询。 谢谢您的提前帮助。
答案 0 :(得分:0)
我通过添加mdc解决了这个问题