You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Logback中忽略含特定消息的ERROR日志?

仅隐藏Logback中特定消息的ERROR日志解决方案

要实现只屏蔽指定内容的ERROR日志,不能直接用简单的logger级别配置,需要通过自定义Logback过滤器来精准匹配日志内容。以下是具体实现步骤:

1. 编写自定义过滤器类

创建一个继承自Filter<ILoggingEvent>的Java类,用于检查日志级别和消息内容,匹配到目标日志时拒绝输出:

import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.filter.Filter;
import ch.qos.logback.core.spi.FilterReply;

public class SpecificErrorFilter extends Filter<ILoggingEvent> {
    private String targetMessage;

    @Override
    public FilterReply decide(ILoggingEvent event) {
        // 仅过滤ERROR级别且包含目标消息的日志
        if (event.getLevel() == Level.ERROR && event.getMessage().contains(targetMessage)) {
            return FilterReply.DENY;
        }
        return FilterReply.ACCEPT;
    }

    // 允许通过配置文件注入目标消息
    public void setTargetMessage(String targetMessage) {
        this.targetMessage = targetMessage;
    }
}

2. 在logback.xml中配置过滤器

将自定义过滤器关联到控制台输出的Appender(或特定Logger),确保只有匹配的日志被屏蔽:

<configuration>
    <!-- 控制台输出Appender,添加自定义过滤器 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} %level %logger - %msg%n</pattern>
        </encoder>
        <!-- 注入需要屏蔽的目标日志内容 -->
        <filter class="com.yourpackage.SpecificErrorFilter">
            <targetMessage>Status: 404 NOT_FOUND  URL : http://localhost:8888/client/search/</targetMessage>
        </filter>
    </appender>

    <!-- 配置目标Logger,保留ERROR级别,确保日志流向控制台Appender -->
    <logger name="package.client" level="error" additivity="true">
        <appender-ref ref="CONSOLE"/>
    </logger>

    <root level="info">
        <appender-ref ref="CONSOLE"/>
    </root>
</configuration>

注意事项

  • 替换com.yourpackage为你实际的过滤器类所在包路径
  • 如果只想针对package.client这个Logger过滤,可将过滤器配置在该Logger专属的Appender中,避免影响其他日志
  • 确保项目依赖中包含slf4j-api和logback-classic,保证Logback正常运行

内容的提问来源于stack exchange,提问作者Anas Abdeljalil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 00:15:45