【问题标题】:Logback filter doesn't filter out the desired classLogback 过滤器不会过滤掉所需的类
【发布时间】:2020-11-06 14:20:49
【问题描述】:

我正在尝试从我的 Logback 日志记录中过滤掉“net.schmizz.concurrent.Promise”类。我试过两种方法,都不管用。我的 logback.xml 看起来像这样:

<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
    <filter class="com.websudos.loggers.ClassNameFilter">
        <className>net.schmizz.concurrent.Promise</className>
        <onMatch>DENY</onMatch>
    </filter>
    <param name="Target" value="System.out"/>
    <encoder>
        <pattern>%date %-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>
    </encoder>
</appender>

<appender name="debugfile" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>debugFile.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>debugFile.%d{yyyy-MM-dd}.log</fileNamePattern>
        <MaxHistory>30</MaxHistory>
    </rollingPolicy>
    <encoder>
        <pattern>%date %-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>
    </encoder>
</appender>

<filter class="com.websudos.loggers.ClassNameFilter">
    <className>net.schmizz.concurrent.Promise</className>
    <onMatch>DENY</onMatch>
</filter>

<!-- Setup the Root category -->
<root level="DEBUG">
    <appender-ref ref="console"/>
    <appender-ref ref="debugfile"/>
</root>

这会产生以下日志文​​件:

2020-11-06 09:12:54,063 1566 [main] DEBUG n.s.sshj.transport.TransportImpl - Sending SSH_MSG_DISCONNECT: reason=[BY_APPLICATION], msg=[] 
2020-11-06 09:12:54,063 1566 [main] DEBUG net.schmizz.concurrent.Promise - Setting <<transport close>> to `SOME` 
2020-11-06 09:12:54,063 1566 [main] DEBUG o.m.D.DownloadWebSiteBackups - Successfully finished DownloadWebSiteBackups 
2020-11-06 09:12:54,063 1566 [reader] DEBUG net.schmizz.sshj.transport.Reader - Stopping 

从第二个日志语句中可以看出,过滤器都不起作用。为什么不呢?

编辑: 以下代码有效,但我更喜欢在 logback.xml 文件中进行:

ch.qos.logback.classic.Logger logger = ( ch.qos.logback.classic.Logger ) LoggerFactory.getLogger( "net.schmizz" );
logger.setLevel( Level.INFO );

【问题讨论】:

    标签: logging logback logback-classic


    【解决方案1】:

    发现错误。它应该看起来像:

    <filter class="ch.qos.logback.classic.filter.LevelFilter">
        <className>net.schmizz.concurrent.Promise</className>
        <level>DEBUG</level>
        <onMatch>DENY</onMatch>
        <onMismatch>ACCEPT</onMismatch>
    </filter>
    

    过滤器类名错误,级别丢失。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-07-13
      • 2015-02-25
      • 1970-01-01
      • 2017-10-27
      • 1970-01-01
      • 2010-10-27
      • 1970-01-01
      相关资源
      最近更新 更多