我知道 log4j 中有一个NullAppender
。但我在 logback 中找不到附加程序。有没有更好的方法来忽略 logback 中的所有日志?
问问题
6480 次
5 回答
6
将日志级别设置为OFF
将忽略所有日志。
<logger name="..." level="OFF" />
于 2013-07-12T08:40:24.377 回答
4
只是好奇,使用 NullAppender 有什么意义(我相信它是一个什么都不做的 Appender),而你不能简单地为记录器设置任何附加程序?
而且,关闭所有日志的正确方法是将日志级别设置为 OFF。
有了@djechlin 的评论,我相信 LogBack 中的过滤器也值得一提。如果您只是想关闭所有通过附加程序的消息,您可以简单地使用阈值过滤器:
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<!-- Deny everything below OFF, that means deny everything -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>OFF</level>
</filter>
.... other config
</appender>
于 2013-07-12T08:45:07.040 回答
4
你总是可以写一个:
public class NullAppender extends UnsynchronizedAppenderBase<ILoggingEvent> {
@Override
protected void append(ILoggingEvent eventObject) {
//no-op
}
}
于 2013-07-12T09:02:55.677 回答
2
要添加到 ZachOfAllTrades 的答案,这里有一个示例logback.xml
,它将根日志级别设置为INFO
但使用 将NOPAppender
所有内容记录到必杀技:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="NOP" class="ch.qos.logback.core.helpers.NOPAppender"/>
<root level="INFO">
<appender-ref ref="NOP"/>
</root>
</configuration>
于 2018-10-09T09:21:14.823 回答