我的问题是关于logstash中的grok过滤器。对于logstash过滤器,我需要解析日志文件。下面的示例日志声明
2017-07-31 09:01:53,135 - INFO [QuorumPeer [myid = 1] / 0:0:0:0:0:0:0:0:2181:ZooKeeperServer @ 617] - 建立会话0x15d964d654646f4,协商超时5000 客户/10.191.202.89:56232
我想使用正则表达式解析[]之间的语句,但没有取得任何成功?从上面
有人可以帮助我使用正则表达式吗?
答案 0 :(得分:2)
您可以使用
\[(?<threadid>\w+[^/]*/[\d:]+):(?<classname>[^\]@]+)@(?<linenumber>\d+)\]
<强>详情
\[
- 文字[
(?<threadid>\w+[^/]*/[\d:]+)
- 小组&#34; threadid&#34;:1+个字符,然后是除/
,/
以外的0 +字符,然后是1个或多个数字或{{ 1}}(请注意,您可以根据需要调整此模式,例如,它也可以写为:
,但它不会那么安全)(?<threadid>.*?[\d:]+)
- 冒号:
- 小组&#34;类名&#34;:除(?<classname>[^\]@]+)
和]
以外的一个或多个字符@
- @
字符@
- Group&#34; linenumber&#34;:1位或更多位(?<linenumber>\d+)
- 文字\]
。grokdebug.herokuapp.com的在线测试结果: