Spring Boot YML配置用于JSON中的日志输出

时间:2019-01-22 10:08:26

标签: spring-boot logback slf4j

我正在尝试以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>

2 个答案:

答案 0 :(得分:0)

如果您的目标是针对不同的环境使用不同的配置,则可以使用spring的this paper

从我的 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>
...

您还应该查看有关profile dependent configuration feature

的段落

答案 1 :(得分:0)

如上面注释中所述,不可能仅在YML文件中为Logback中的JSON布局进行配置。我的要求是从YML文件设置日志级别ERROR / INFO。我知道我们可以在Spring Boot中通过YML文件覆盖logback日志级别。对于JSON格式配置,可以使用logback.xml,而对于设置日志级别,则可以使用YML文件