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

Logback不同日志级别配置:实现info仅输出控制台debug同时写文件

问题原因

你当前配置的pro.tradeshare包日志级别为debug,默认情况下appender会接收大于等于配置级别的所有日志,所以debug、info、warn、error级别的日志都会被写入FILE appender,不符合你只保留debug级别的要求。

解决方法

在FILE类型的appender配置中添加LevelFilter,仅放行DEBUG级别的日志,拒绝其他所有级别日志即可。修改后的完整logback.xml配置如下:

<configuration>
    <property name="HOME_LOG" value="logs/app.log"/>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>${HOME_LOG}</file>
        <append>true</append>
        <immediateFlush>true</immediateFlush>
        <encoder>
            <pattern>%d %p %c{1.} [%t] %m%n</pattern>
        </encoder>
        <!-- 新增级别过滤器,仅保留DEBUG级别日志 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>DEBUG</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    <root level="info">
        <appender-ref ref="STDOUT"/>
    </root>
    <logger name="pro.tradeshare" level="debug" additivity="false">
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="FILE"/>
    </logger>
</configuration>
配置效果验证

修改后会完全符合你的预期:

  • pro.tradeshare包下的debug日志:同时输出到控制台、日志文件
  • pro.tradeshare包下的info及以上级别日志:仅输出到控制台
  • 其他包的日志:按照root配置的info级别仅输出到控制台

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 08:57:04