Я использую файл 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>
Пожалуйста, помогите мне отфильтровать определенные запросы, чтобы ненаписано.Заранее благодарю за помощь.