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

SpringBoot 2.7.2集成Logback遇日志不打印及上下文错误求助

解决Logback报错“LOGBACK: No context given for net.logstash.logback.LogstashFormatter”及日志不输出问题

问题原因

  1. 编码器配置错误:使用LogstashEncoder嵌套自定义pattern provider时,LogstashFormatter无法正确获取Logback上下文,导致初始化失败。
  2. 版本兼容问题:你使用的logstash-logback-encoder 6.6与SpringBoot 2.7.2内置的Logback 1.2.11存在兼容性差异,加剧了上下文绑定异常。

解决方案

1. 升级logstash-logback-encoder依赖

在pom.xml中更新依赖版本至与SpringBoot 2.7.2兼容的7.x版本:

<dependency>
    <groupId>net.logstash.logback</groupId>
    <artifactId>logstash-logback-encoder</artifactId>
    <version>7.4</version>
</dependency>

2. 替换编码器类型

将LogstashEncoder替换为PatternJsonEncoder(专门用于自定义JSON日志格式,可正确绑定Logback上下文),修改logback-spring.xml中FILE-ROLLING appender的编码器配置:

<appender name="FILE-ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${HOME_LOG}</file>
    <!-- 自动创建日志父目录 -->
    <append>true</append>
    
    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
        <fileNamePattern>${LOG_ROOT_PATH}/logs/${APP_NAME}/archived/${APP_NAME}.%d{yyyy-MM-dd}.%i.json</fileNamePattern>
        <maxFileSize>10MB</maxFileSize>
        <totalSizeCap>2GB</totalSizeCap>
        <maxHistory>60</maxHistory>
    </rollingPolicy>

    <!-- 替换为PatternJsonEncoder -->
    <encoder class="net.logstash.logback.encoder.PatternJsonEncoder">
        <pattern>
            {
                "timestamp": "%d{ISO8601}",
                "trace": "%X{traceId:-}",
                "span": "%X{spanId:-}",
                "level": "%level",
                "logger": "%logger",
                "thread": "%thread",
                "application": "${APP_NAME}",
                "message": "%msg"
            }
        </pattern>
    </encoder>
</appender>

3. 验证配置完整性

确保application.yml中已正确配置日志相关属性:

spring:
  application:
    name: your-application-name
log:
  root.path: ./logs

验证

重启应用后,检查日志目录是否生成JSON格式日志,同时控制台不再出现No context given的报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 07:10:21