如何解决Logback过滤器无法过滤出所需的类
我正在尝试从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 );
解决方法
发现了错误。看起来应该像这样:
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<className>net.schmizz.concurrent.Promise</className>
<level>DEBUG</level>
<onMatch>DENY</onMatch>
<onMismatch>ACCEPT</onMismatch>
</filter>
过滤器类名称错误并且缺少级别。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。