在配置Logtail采集文本日志时,如果选择完整正则模式解析、采集日志,需要您根据自己的日志样例配置正则表达式。本文档介绍如何调试正则表达式。 如果您希望对您所在日志服务控制台所设置的正则表达式进行调试,您可以直接在界面上使用 验证按钮所提供的功能来进行检查: 对于行首正则表达式,检查一下当前设置能否正确匹配出您期望的日志数量。 对于提取字段,检查一下各个字段中的值是否是您所希望的。 如果您希望进行更多的验证乃至调试正则表达式,您可以利用诸如 Regex101、RegexTester 之类的在线工具,将控制台为您自动生成的正则表达式拷贝粘贴到这些工具上,然后填充您的实际日志来进行检查、调试。 完整正则模式提供自动生成功能,可能会为多行日志的message字段生成不合适的正则。本文档以Regex101为例,对该正则进行以下检查。 操作步骤 拷贝日志服务根据日志样例自动生成的完整正则。 打开网站Regex101。 在REGULAR EXPRESSION中粘贴自动生成的完整正则:
[([^]]+)]\s[(\w+)]\s([^:]+:\s\w+\s\w+\s[^:]+:\S+\s[^:]+:\S+\s\S+).* 在界面的右侧,您还可以看到该正则的含义。
在TEST STRING中贴入日志样例中的日志。 以下示例表示正则式与日志部分匹配, at 之后的内容并没有被包含到 message 字段中(表示为橘色和蓝色),因此该表达式不完全匹配样例日志,即对于该样例日志来说,这条正则表达式是错误的,使用这条正则表达式无法正常采集到所有日志数据。
验证另一个错误:如果日志中只有两个冒号的情况。 以下示例表示匹配失败。
将最后一个正则表达式替换为 [\S\s]+ ,并再次尝试检查匹配程度。 at 之后的内容如下:
只有两个冒号的日志:
您也可以按照以上方法来对您的正则表达式进行调试、修改,最终应用于Logtail采集配置中。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。