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

Logback日志拆分异常:指定Logger同时输出至控制台与文件

Logback日志拆分配置问题解决

你的配置问题出在Logger的日志事件向上传递机制上:Logback中,子Logger的日志默认会传递给父Logger(包括root)的Appender。Simulator Logger作为root的子Logger,即使你给它绑定了文件Appender,它的日志依然会向上传递到root,而root绑定了控制台输出,所以日志会同时出现在文件和控制台。

解决方法是给Simulator Logger添加additivity="false"属性,关闭日志向上传递的默认行为:

<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%kvp- %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="SIMULATOR_LOG_FILE" class="ch.qos.logback.core.FileAppender">
        <file>data_log.txt</file>
        <append>false</append>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level -%kvp- %msg%n</pattern>
        </encoder>
    </appender>

    <!-- 关闭日志向上传递,只使用当前Logger绑定的Appender -->
    <logger name="Simulator" level="debug" additivity="false">
        <appender-ref ref="SIMULATOR_LOG_FILE"/>
    </logger>

    <root>
        <appender-ref ref="STDOUT"/>
    </root>
</configuration>

修改后,Simulator的日志只会被SIMULATOR_LOG_FILE Appender输出到文件,不会再传递到root的控制台Appender;其余Logger的日志则会通过root正常输出到控制台,完全符合你的需求。

内容的提问来源于stack exchange,提问作者F.P

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 11:52:30