线程名的GROK模式(LogStash 8.2.0)

pnwntuvh  于 2022-12-09  发布在  Logstash
关注(0)|答案(1)|浏览(165)

我是LogStash的新手。我正在学习GROK模式以及如何从日志行中提取数据。所以我使用Logback来打印日志行。logback.xml中的布局如下所示:

%date{dd/MM/YYYY HH:mm:ss.SSS ZZ} [%-5level] [%thread] %logger{40} - %msg%n%xThrowable

因此,它通常会将日志输出打印在如下文件中:

07/06/2022 14:37:41.471 +0530 [WARN ] [main] com.cmt.trial.logging.LoggingTrial - Trying to log an warn

现在到目前为止,我已经得到了:

%{DATE_EU:date} %{TIME:time} %{ISO8601_TIMEZONE:zone} \[%{LOGLEVEL:loglevel}.*]

它确实提取了日期、时间、时区和日志级别。但是我想不出一种方法来提取线程名称[main]。任何关于这方面的指针都将是有帮助的。
先谢谢你。

ffscu2ro

ffscu2ro1#

可以使用DATA(regex .*?)而不是GREEDYDATA(regex .*)(代码here),因为知道线程名称在括号内,所以类似于

%{DATE_EU:date} %{TIME:time} %{ISO8601_TIMEZONE:zone} \[%{LOGLEVEL:loglevel} \] \[%{DATA:thread_name}\].*

相关问题