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

Logback配置仅输出ERROR到catalina.out却出现DEBUG日志的问题

问题分析

你遇到的核心问题是混淆了自己配置的Logback输出文件与Tomcat原生的catalina.out:

  • 你的Logback配置中,FILE-CATALINA追加器输出到${DEV_HOME}/catalina.out(即应用目录下的./logs/catalina.out);
  • 而你看到DEBUG日志的是Tomcat安装目录下的{server}/logs/tomcat/catalina.out,这个文件是Tomcat用来捕获JVM标准输出(stdout)和标准错误(stderr)的默认文件。

出现DEBUG日志的原因:你的Logback配置中存在STDOUT控制台追加器,且配置了多个<root>节点,Logback只会生效最后一个,导致前面关联FILE-CATALINA的Root配置被覆盖,部分日志(包括Activiti的DEBUG日志)被输出到stdout,进而被Tomcat捕获并写入它的catalina.out。

解决方案

1. 清理重复的Root日志配置

Logback中仅能有一个有效的<root>节点,多余的会被忽略。删除配置中指向CONSOLE和STDOUT的<root>节点,仅保留关联FILE-CATALINA的配置:

<root level="ERROR">
    <appender-ref ref="FILE-CATALINA" />
</root>

2. 确保Activiti日志级别被正确限制

检查当前运行环境的日志配置:

  • 如果是开发环境:恢复<springProfile name="dev">的注释(之前你把注释打开了,导致配置直接生效),确认org.activiti的日志级别为ERROR,且没有其他配置(如application.properties中的logging.level.org.activiti=DEBUG)覆盖该设置;
  • 如果是生产环境:确保spring.profiles.active=prod,此时org.activiti的日志级别为WARN且additivity=false,不会将日志传递到Root节点。

3. 阻止Tomcat捕获应用stdout(可选)

如果不需要Tomcat的catalina.out记录应用日志,可修改Tomcat的conf/logging.properties:

  • 将java.util.logging.ConsoleHandler.level设为SEVERE(对应Logback的ERROR级别);
  • 或修改Tomcat启动脚本,移除将stdout/stderr重定向到catalina.out的逻辑。

修正后的关键配置片段

<configuration>
    <!-- 其他原有配置保持不变 -->

    <!-- 仅保留这一个Root节点 -->
    <root level="ERROR">
        <appender-ref ref="FILE-CATALINA" />
    </root>

    <!-- 恢复开发环境的Profile注释 -->
    <springProfile name="dev">
        <logger name="com.keuroa.em" level="error" additivity="true">
            <appender-ref ref="FILE-AUDIT" />
        </logger>
        <logger name="org.springframework" level="error" additivity="true">
            <appender-ref ref="FILE-AUDITSPRING" />
        </logger>

        <logger name="org.activiti" level="error" additivity="true">
            <appender-ref ref="FILE-AUDIT-WF" />
        </logger>
        <logger name="org.activiti5" level="error" additivity="true">
            <appender-ref ref="FILE-AUDIT-WF" />
        </logger>
    </springProfile>

    <!-- 生产环境配置保持不变 -->
    <springProfile name="prod">
        <logger name="com.keuroa.em" level="WARN" additivity="false">
            <appender-ref ref="FILE-AUDIT" />
        </logger>
        <logger name="org.springframework" level="WARN" additivity="false">
            <appender-ref ref="FILE-AUDITSPRING" />
        </logger>

        <logger name="org.activiti" level="WARN" additivity="false">
            <appender-ref ref="FILE-AUDIT-WF" />
        </logger>
        <logger name="org.activiti5" level="WARN" additivity="false">
            <appender-ref ref="FILE-AUDIT-WF" />
        </logger>
    </springProfile>

    <!-- 其他原有配置保持不变 -->
</configuration>

内容的提问来源于stack exchange,提问作者Nunyet Calçada

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 12:57:00