针对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}-%{MONTHDA