【发布时间】:2019-04-17 07:59:12
【问题描述】:
以下是从 java 应用程序收到的示例日志
2019-04-11 9:08:22:562 Log 1
2019-04-11 9:08:22:660 Log 2
2019-04-11 9:08:43:79 Log 3
2019-04-11 9:08:43:156 Log 4
从上面的日志中,我遇到Log 3的问题,毫秒值只有79,但是在Logstash中解析后,该值设置为790 ms(Logstash解析正确,但java日志值错误)。实际上日志中的值应该是2019-04-11 9:08:43:079,以便正确解析。
Logstash 过滤器如下:
date {
match => [ "log_time", "yyyy-MM-dd HH:mm:ss:SSS", "ISO8601" ]
target => "log_time"
timezone => "CET"
}
在深入挖掘时,我发现问题在于这种时间格式的 Java 日志记录,如果格式为 yyyy-MM-dd HH:mm:ss.SSS,它将得到解决。但是日志记录应用程序使用格式 yyyy-MM-dd HH:mm:ss:SSS 导致此问题(注意格式 :SSS 和 .SSS 的区别)。
我无法更改日志记录 java 系统,那么 Logstash 过滤器是否有任何解决方法来解决此问题。
【问题讨论】:
标签: logging timestamp date-format elastic-stack