针对Java配置的日志格式如下:
<property name="log_pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %contextName [%thread] %mm{sessionId} %-5level %logger{50} [%file:%line] - %P{traceId} - %msg%n"/>
%d表示日期,
%thread表示线程名,
%-5level:级别从左显示5个字符宽度
%msg:日志消息,
%logger{50}包名缩写,
%n是换行符
转换为grok解析表达式:
(?<logtimestamp>%{YEAR}-%{MONTHNUM}-%{MONTHDAY} %{TIME}) %{WORD:contextName} \[%{DATA:thread}\] %{DATA:mdcSessionId} %{LOGLEVEL:logLevel} %{DATA:package} \[%{DATA:fileLine}\] - %{DATA:traceId} - %{DATA:msg}$
解析后效果:

spring boot 默认格式解析:
(?<logtimestamp>%{YEAR}-%{MONTHNUM}-%{MONTHDAY} %{TIME}) %{LOGLEVEL:logLevel} %{DATA:pid} --- \[%{DATA:thread}\] %{DATA:package} : %{DATA:msg}$
grok debug工具:Grok Debugger | Autocomplete and Live Match Highlghting
grok介绍参考资料:
https://www.elastic.co/guide/en/logstash/current/plugins-filters-grok.html
https://github.com/logstash-plugins/logstash-patterns-core/blob/main/patterns/ecs-v1/java
配置示例 https://gist.github.com/daniellavoie/43e25d1fb74bc99dc3915a03901777e2https://gist.github.com/kyungw00k/e7b3cee94d9c669e5586
本文介绍了如何使用Logstash的Grok过滤器解析Java日志,日志格式包含日期、线程名、日志级别、日志消息和包名缩写。通过Grok Debugger进行调试,并提供了grok表达式示例,以及相关参考资料链接,帮助读者理解并实践Java日志的Grok解析。
1337

被折叠的 条评论
为什么被折叠?



