有一个第三方的包,在运行时会打出大量我觉得没有用的日志,假设它都以abcdef开头,要怎么办呢?一般的 log 过滤,都是按等级来设置的,例如不记录 debug、info 级别的 log。如果涉及到字符串的匹配,要怎么做?
做法是在logback.xml的<appender>里面,加上<filter>:
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>%d{yy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{32} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
<filter class="com.xxxxxxx.MyThresholdFilter"/> <!-- 加在这里 -->
</appender>
然后另外再创建这个MyThresholdFilter.java:
public class MyThresholdFilter extends ThresholdFilter {
@Override
public FilterReply decide(ILoggingEvent event) {
if (event.getMessage().startsWith("abcdef")) {
return FilterReply.DENY;
}
return FilterReply.NEUTRAL;
}
}
发表评论