java - 通过 logback.xml 的 Logback 结构化日志记录格式时间戳
问题描述
我想格式化结构化日志中的时间戳。目前我定义了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>
推荐阅读
- python - 除了函数给我一个语法错误
- chromecast - videojs-chromecast 不播放一些加密的 hls 视频?
- python - 使用模块 pygame 在 python 中制作 Checkers 但遇到一些逻辑错误我不希望代码更改只是修复了这个问题
- android-studio - Flutter:Flutter Plugin、Flutter Package 和 Flutter Module 有什么区别?
- python - Django - 如何在自定义接收器中获取请求的 IP?
- sql - 如何根据使用 SQL Server 选择的不同(列)获取不同的行
- laravel - 如何修复此请求已被阻止;内容必须通过 HTTPS 提供
- python - 在openCV中使用cv2.TrackerMOSSE_create()等方法失败[Python]
- c++ - 使用精美的指针实现自定义分配器
- javascript - Threebox CastShadow on 3D 模型