【问题标题】:Logback Modify log level in Custom Logging FilterLogback 在自定义日志过滤器中修改日志级别
【发布时间】:2020-01-19 22:56:07
【问题描述】:

我的目标是捕获 org.hibernate.engine.jdbc.spi.SqlExceptionHelper 抛出的错误并将它们记录为警告

CustomLoggingFilter.java

package com.example.service;

import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.filter.Filter;
import ch.qos.logback.core.spi.FilterReply;
import java.util.Arrays;
import java.util.List;

public class CustomLoggingFilter extends Filter<ILoggingEvent> {

  private final String exceptionClassName = "org.hibernate.engine.jdbc.spi.SqlExceptionHelper";

  public CustomLoggingFilter() {
  }

  @Override
  public FilterReply decide(final ILoggingEvent event) {
    if (event.getLoggerName().equals(exceptionClassName)) {
      return FilterReply.DENY;
    }

    return FilterReply.NEUTRAL;
  }
}

我的 xml 配置

logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <include resource="org/springframework/boot/logging/logback/base.xml"/>

  <appender name="SqlAppender" class="ch.qos.logback.core.ConsoleAppender">
    <filter class="com.example.service.CustomLoggingFilter" />

    <encoder>
      <pattern>
        %-4relative [%thread] %-5level %logger - %msg%n
      </pattern>
    </encoder>
  </appender>

  <logger name="org.hibernate.engine.jdbc.spi.SqlExceptionHelper" level="ERROR" additivity="false">
    <appender-ref ref="SqlAppender"/>
  </logger>

  <root level="INFO">
    <appender-ref ref="CONSOLE"/>
  </root>

</configuration>

我可以阻止消息被记录,但不知道如何将其记录为警告而不是错误

P.S:不确定我的方法是否正确

【问题讨论】:

    标签: java logging logback


    【解决方案1】:

    您目前似乎已将其配置为 ERROR?

    <logger name="org.hibernate.engine.jdbc.spi.SqlExceptionHelper" level="ERROR" additivity="false">
        <appender-ref ref="SqlAppender"/>
      </logger>
    

    尝试将其更改为:

    <logger name="org.hibernate.engine.jdbc.spi.SqlExceptionHelper" level="WARN" additivity="false">
        <appender-ref ref="SqlAppender"/>
      </logger>
    

    【讨论】:

    • 我认为将其更改为 level="WARN" 将捕获 logger.warn 事件(如果我错了,请纠正我)。我希望它捕获 ERROR 级别的事件并将它们记录为 WARN
    猜你喜欢
    • 2012-09-11
    • 1970-01-01
    • 2018-02-09
    • 1970-01-01
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多