问题描述
我有一个Java应用程序,其中使用Log4j2在JSONLayout中打印日志,这是日志格式的示例:
{
"thread": "TopicStatusThreadPool-thread-1","level": "INFO","loggerName": "My Kafka Logger","message": "Topic Status List is empty,returning from summarize method","endOfBatch": false,"loggerFqcn": "org.apache.logging.slf4j.Log4jLogger","instant": {
"epochSecond": 1587980988,"nanoOfSecond": 214241000
},"threadId": 37,"threadPriority": 5
}
以这种格式打印的日志随后被Fluent Bit拾取,并推入Elasticsearch。我正在使用Kibana可视化日志,但是当我看到日志和时间为 epochSecond 和 nonOfSecond 时,将其与实际的应用程序日志联系起来将变得非常困难。格式。
是否有任何有效位过滤器,可用于将该时间格式修改为更易于阅读的格式。
当前,我正在Fluent Bit配置中使用基本JSON解析器和Kubernetes过滤器,将Kubernetes信息添加到日志消息中。
更新:
我对Log4j2的配置进行了更改,现在我得到了timeMillis字段,该字段在时间上以毫秒为单位打印在日志中。
{
"thread": "TopicStatusThreadPool-thread-1","timeMillis": 1587980988213,"threadPriority": 5
}
将其转换为人类可读格式的lua过滤器将是什么。默认情况下,Fluent Bit中的时间转换不支持毫秒级的时间,而是需要以秒为单位的时间。
我尝试过:
[PARSER]
Name json
Format json
Time_Key timeMillis
Time_Format %s
Time_Keep On
但这不会占用毫秒部分,请以秒为单位处理时间。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)