如何在不覆盖Spring Boot默认日志格式的情况下配置Logback过滤器
保留Spring Boot默认日志编码器同时使用自定义Logback过滤器的实现方法
完全可行,核心思路是复用Spring Boot默认的Logback配置片段,避免完全重写Appender导致丢失默认编码器设置,同时将自定义过滤器关联到默认的CONSOLE Appender上。
问题根源
- 直接添加的
RedactFilter未被调用:Spring Boot的CONSOLE Appender是自动配置的,单独定义的过滤器如果没有关联到该Appender,不会被触发。 - 重定义CONSOLE Appender必须指定encoder:Logback要求所有输出Appender必须配置encoder,重写Appender时会覆盖Spring Boot的默认配置,所以必须显式复用默认的编码器参数。
两种实现方案
方案1:修改默认CONSOLE Appender,添加过滤器
通过引入Spring Boot官方的Logback配置片段,直接在默认的CONSOLE Appender上追加自定义过滤器,完全保留默认编码器:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- 引入Spring Boot默认的基础配置和控制台Appender配置 --> <include resource="org/springframework/boot/logging/logback/defaults.xml"/> <include resource="org/springframework/boot/logging/logback/console-appender.xml"/> <!-- 给默认的CONSOLE Appender添加自定义过滤器 --> <appender name="CONSOLE" ref="CONSOLE"> <filter class="com.yourpackage.RedactFilter"> <!-- 这里添加过滤器的配置参数,比如需要脱敏的字段规则 --> <param name="redactPatterns" value="password=.*?,token=.*?"/> </filter> </appender> <!-- 根日志级别配置 --> <root level="INFO"> <appender-ref ref="CONSOLE"/> </root> </configuration>
方案2:重定义CONSOLE Appender,复用默认编码器参数
如果需要对Appender做更多自定义,可重新定义CONSOLE Appender,但使用Spring Boot预定义的日志格式和编码参数,保留默认编码器行为:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- 引入Spring Boot默认配置,加载预定义的日志参数 --> <include resource="org/springframework/boot/logging/logback/defaults.xml"/> <!-- 重定义CONSOLE Appender,复用默认的日志格式和编码 --> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <!-- 使用Spring Boot默认的日志格式和字符集 --> <encoder> <pattern>${CONSOLE_LOG_PATTERN}</pattern> <charset>${CONSOLE_LOG_CHARSET}</charset> </encoder> <!-- 添加自定义过滤器 --> <filter class="com.yourpackage.RedactFilter"> <param name="redactPatterns" value="password=.*?,token=.*?"/> </filter> </appender> <root level="INFO"> <appender-ref ref="CONSOLE"/> </root> </configuration>
说明
CONSOLE_LOG_PATTERN和CONSOLE_LOG_CHARSET是Spring Boot自动配置的属性,对应默认的日志输出格式和编码,无需手动编写复杂pattern。- 两种方案都能确保
RedactFilter被正确调用,同时保留Spring Boot默认的日志编码器行为(如颜色输出、默认格式等)。
内容的提问来源于stack exchange,提问作者rhinmass
相关产品推荐
相关产品推荐

