gpt4 book ai didi

elasticsearch - grok调试器正则表达式用法

转载 作者:行者123 更新时间:2023-12-02 23:04:14 26 4
gpt4 key购买 nike

我正在测试grok debugger,但无法解决问题。

示例文本:

2014-06-17 04:37:30,317 c.e.A.MyActivity INFO main MyActivity.java 53 com.example.ApLogback.MyActivity$1 onClick logger track

我应该如何构造grok regex / pattern字符串,以便它像以下部分一样拆分先前的示例文本:
{
timestamp:2014-06-17 04:37:30,317
logger:c.e.A.MyActivity
level:info
caller_thread:main
caller_method:MyActivity.java
caller_line:53
caller_class:com.example.ApLogback.MyActivity$1
caller_method: onClick
msg: caller track
}

我当前的正则表达式是:
 (?<timestamp>[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3}) (?<logger>.*) 

但是它仅将日志字符串的开头部分分割。我当前的grok字符串的示例结果是:
    {
"timestamp": [
[
"2014-06-17 04:37:30,317"
]
],
"logger": [
[
"c.e.A.MyActivity INFO main MyActivity.java 53 com.example.ApLogback.MyActivity$1 onClick logger"
]
]
}

最佳答案

Grok附带了许多已经定义好的模式,这些模式可以满足您的大多数需求,请在Grok Debugger/patterns上进行检查。

至于您问题的具体答案,下面是一个简单的示例,它可以满足您的需要。这只是如何使用已定义的grok模式来构建自己的模式的示例。

(?<timestamp>[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3}) (?:%{JAVACLASS:logger}) (?:%{LOGLEVEL:level}) (?:%{WORD:caller_thread}) (?:%{JAVACLASS:caller_file}) (?:%{NONNEGINT:caller_line}) (?:%{JAVACLASS:caller_class}) (?:%{WORD:caller_method}) (?:%{GREEDYDATA:msg})

关于elasticsearch - grok调试器正则表达式用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24256198/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com