【发布时间】:2020-04-13 16:43:28
【问题描述】:
我正在尝试过滤我拥有的一些日志文件的日志级别。我的问题是 Grok 似乎无法处理位于过滤器开头的\w。
我正在使用这个网站来验证正则表达式:https://regexr.com/
我正在使用这个站点来测试 Grok 过滤器:http://grokdebug.herokuapp.com/
这是我的示例日志行:2020-04-07T13:08:19.261-0700|INFO |||
这是我要运行的内容:
(?<timestamp>.+?(?=\|))(?<loglevel>\w+?(?= \|))
这表示未找到匹配项。如果我将“\w”替换为“。”它立即找到该行,但留下非字母字符:
{
"timestamp": [
[
"2020-04-07T13:08:19.261-0700"
]
],
"loglevel": [
[
"|INFO"
]
]
}
它应该无论如何都可以工作。它只是说匹配 \w 字符。我在这里显然缺乏正则表达式知识。有谁知道发生了什么并愿意向我指点一下吗?
【问题讨论】:
标签: regex logging logstash logstash-grok