通过 logback.xml 的 Logback 结构化日志记录格式时间戳

Logback structured logging format timestamp via logback.xml

我想在我的结构化日志中格式化时间戳。 目前我将 logback.xml 定义为:

<configuration>
<appender name="json" class="ch.qos.logback.core.ConsoleAppender">
    <encoder class="net.logstash.logback.encoder.LogstashEncoder">
        <fieldNames>
            <timestamp>timestamp</timestamp>
            <logger>[ignore]</logger>
            <version>[ignore]</version>
            <levelValue>[ignore]</levelValue>
            <stackTrace>exception</stackTrace>
        </fieldNames>
    </encoder>
</appender>

<root name="jsonLogger" level="DEBUG">
    <appender-ref ref="json"/>
</root>

</configuration>

使用<fieldNames>我可以更改时间戳字段的名称。

如何通过 logback.xml 中的配置更改时间戳的模式?

如果发现我可以将 <timeZone><timestampPattern> 添加到编码器以格式化我的时间戳。

那么完整的配置就变成了:

<configuration>
<appender name="json" class="ch.qos.logback.core.ConsoleAppender">
    <encoder class="net.logstash.logback.encoder.LogstashEncoder">
        <timeZone>UTC</timeZone>
        <timestampPattern>yyyy-MM-dd'T'HH:mm:ss.SSS</timestampPattern>
        <fieldNames>
            <timestamp>timestamp</timestamp>
            <logger>[ignore]</logger>
            <version>[ignore]</version>
            <levelValue>[ignore]</levelValue>
            <stackTrace>exception</stackTrace>
        </fieldNames>
    </encoder>
</appender>

<root name="jsonLogger" level="DEBUG">
    <appender-ref ref="json"/>
</root>

</configuration>