流利的位过滤器可将Unix Epoch时间戳转换为人类可读格式

问题描述

我有一个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 (将#修改为@)