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

如何在Spring Boot测试中启用指定日志工厂并实现JUL转SLF4J

日志测试场景下的JUL到SLF4J重定向配置

场景配置要求

在日志测试场景中,需激活LogbackLoggingSystem处理器或对应的工厂,相关配置如下:

# Logging Systems
org.springframework.boot.logging.LoggingSystemFactory=\
org.springframework.boot.logging.logback.LogbackLoggingSystem.Factory,\
org.springframework.boot.logging.log4j2.Log4J2LoggingSystem.Factory,\
org.springframework.boot.logging.java.JavaLoggingSystem.Factory

编写的测试代码

@ExtendWith(SpringExtension.class)
@ContextConfiguration(
        initializers = {ConfigDataApplicationContextInitializer.class})
@Slf4j
public class MyAppTest {
    @Test
    void my() {
        log.info("OK");
    }
}

核心需求

希望在测试期间Spring Boot能激活JUL到SLF4J的重定向,需在测试前调用SLF4JBridgeHandler.install()方法。

问题排查与衍生

经排查,LoggingSystemFactory由LoggingApplicationListener实例化,因此衍生问题:如何在Spring测试上下文中指定使用LoggingApplicationListener?

已实现的解决方案

通过另一种方式实现了目标——在应用启动时通过系统属性java.util.logging.config.class配置JUL日志。该方案独立于Spring,不会污染main()或@Configuration,但需在命令行添加额外属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 05:27:07