JSON 格式日志输出的 Spring Boot YML 配置

Moh*_*ran 2 logback slf4j spring-boot

我正在尝试以 JSON 格式获取日志输出。我通过配置 logback.xml 文件来实现它。是否可以通过YML 文件实现相同的目的?

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <layout class="ch.qos.logback.contrib.json.classic.JsonLayout">
        <jsonFormatter class="ch.qos.logback.contrib.jackson.JacksonJsonFormatter">
            <prettyPrint>true</prettyPrint>
        </jsonFormatter>
        <timestampFormat>yyyy-MM-dd' 'HH:mm:ss.SSS</timestampFormat>
    </layout>
</appender>
Run Code Online (Sandbox Code Playgroud)

小智 5

如果你的目标是针对不同的环境有不同的配置,你可以使用spring的profile依赖配置功能

从我的logback-spring.xml

...
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">

    <springProfile name="dev">
        <encoder>
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            <charset>utf8</charset>
        </encoder>
    </springProfile>

    <springProfile name="qa,prod">
        <encoder class="net.logstash.logback.encoder.LogstashEncoder"/>
    </springProfile>

</appender>
...
Run Code Online (Sandbox Code Playgroud)

您还应该检查有关环境属性的段落

  • 谢谢,我希望将其放在 yml 文件中以更改日志级别。我开始知道 yml 配置可以覆盖 logback。所以我使用 logback.xml 作为 json 格式,使用 yml 文件作为日志级别 (2认同)