我已经配置了Rollbar Appender in logback-spring.xml
:
logback-spring.xml
并激活它以获取所需的配置文件:
<appender name="Rollbar" class="com.rollbar.logback.RollbarAppender">
<accessToken>${ROLLBAR_TOKEN}</accessToken>
<environment>${SPRING_PROFILES_ACTIVE}</environment>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
</appender>
一切正常,除了一个问题,我在Rollbar中会收到错误。我不希望在Rollbar中看到一些错误,但仍然可以在控制台中看到它们,例如:]
<!-- debug level for dev -->
<springProfile name="dev">
<root level="debug">
<appender-ref ref="Console"/>
<appender-ref ref="Rollbar"/>
</root>
</springProfile>
我如何以最方便的方式过滤此类消息?
解决方案是创建您自己的io.netty.channel.unix.Errors$NativeIoException: readAddress(..) failed: Connection reset by peer
实现:
ch.qos.logback.core.filter.Filter
并以下列方式使用:
public class RegexRollbarFilter extends Filter<ILoggingEvent> {
private String regex;
private boolean includeThrowableMessage = true;
@Override
public FilterReply decide(ILoggingEvent event) {
if (!isStarted()) {
return FilterReply.NEUTRAL;
}
IThrowableProxy throwableProxy = event.getThrowableProxy();
if (event.getMessage()
.matches(regex) || includeThrowableMessage && throwableProxy != null && throwableProxy.getMessage()
.matches(regex)) {
return FilterReply.DENY;
} else {
return FilterReply.NEUTRAL;
}
}
public void setRegex(String regex) {
this.regex = regex;
}
public void setIncludeThrowableMessage(boolean includeThrowableMessage) {
this.includeThrowableMessage = includeThrowableMessage;
}
public void start() {
if (this.regex != null) {
super.start();
}
}
}