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

寻求替代ch.qos.logback.contrib的JSON日志库,实现Logback单行JSON输出

问题说明
  • 现有Logback的Appender配置使用了ch.qos.logback.contrib库的JsonLayout和JacksonJsonFormatter,但该库存在安全漏洞且已停止维护,需寻找替代方案
  • 核心需求:实现单行JSON格式的日志输出Appender
  • 此前尝试过Spring日志和PatternLayout,但存在问题:异常信息无法被纳入JSON对象,会输出到JSON外部的新行中

原Appender配置

<appender name="RollingFileJSON" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>logs/json/app.log</file>
    <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
        <layout class="ch.qos.logback.contrib.json.classic.JsonLayout"> <!-- 需替换的组件 -->
            <timestampFormat>yyyy-MM-dd'T'HH:mm:ss.SSSX</timestampFormat>
            <timestampFormatTimezoneId>Etc/UTC</timestampFormatTimezoneId>
            <jsonFormatter class="ch.qos.logback.contrib.jackson.JacksonJsonFormatter"> <!-- 需替换的组件 -->
                <prettyPrint>true</prettyPrint>
            </jsonFormatter>
        </layout>
    </encoder>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!-- 每日滚动,且文件达到10MB时滚动 -->
        <fileNamePattern>logs/json/app-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
        <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <maxFileSize>10MB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
    </rollingPolicy>
</appender>

尝试过的PatternLayout配置

<layout class="ch.qos.logback.classic.PatternLayout">
    <pattern>{"timestamp":"%d{yyyy-MM-dd'T'HH:mm:ss.SSSX}", "level":"%level", "logger":"%logger", "message":"%msg", "thread":"%thread"}%n</pattern>
</layout>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 06:49:59