在配置Logtail采集文本日志时,如果选择完整正则模式解析、采集日志,需要您根据自己的日志样例配置正则表达式。本文档介绍如何调试正则表达式。

如果您希望对您所在日志服务控制台所设置的正则表达式进行调试,您可以直接在界面上使用 验证按钮所提供的功能来进行检查:
  • 对于行首正则表达式,检查一下当前设置能否正确匹配出您期望的日志数量。
  • 对于提取字段,检查一下各个字段中的值是否是您所希望的。

如果您希望进行更多的验证乃至调试正则表达式,您可以利用诸如 Regex101RegexTester 之类的在线工具,将控制台为您自动生成的正则表达式拷贝粘贴到这些工具上,然后填充您的实际日志来进行检查、调试。

完整正则模式提供自动生成功能,可能会为多行日志的message字段生成不合适的正则。本文档以Regex101为例,对该正则进行以下检查。

操作步骤

  1. 拷贝日志服务根据日志样例自动生成的完整正则。
  2. 打开网站Regex101
  3. REGULAR EXPRESSION中粘贴自动生成的完整正则:
    \[([^]]+)]\s\[(\w+)]\s([^:]+:\s\w+\s\w+\s[^:]+:\S+\s[^:]+:\S+\s\S+).*

    在界面的右侧,您还可以看到该正则的含义。



  4. TEST STRING中贴入日志样例中的日志。

    以下示例表示正则式与日志部分匹配, at 之后的内容并没有被包含到 message 字段中(表示为橘色和蓝色),因此该表达式不完全匹配样例日志,即对于该样例日志来说,这条正则表达式是错误的,使用这条正则表达式无法正常采集到所有日志数据。



  5. 验证另一个错误:如果日志中只有两个冒号的情况。

    以下示例表示匹配失败。



  6. 将最后一个正则表达式替换为 [\S\s]+ ,并再次尝试检查匹配程度。

    at 之后的内容如下:



    只有两个冒号的日志:



您也可以按照以上方法来对您的正则表达式进行调试、修改,最终应用于Logtail采集配置中。