[英]Fluentd log source format RegEX
我有这种格式的日志:
2015-02-25 18:33:06,975 INFO c.a.p.c.b.s.Monitor akka://application/user/daemons/monitor : 91 active threads, 4175691776 bytes used
我来到这个正则表达式:
(?<time>[^ ]* [^ ]*) (?<method>[^ ]*) (?<path>[^ ]*) (?<message>[^ ].*$)
当我在Fluentular中测试时(我将它用作流畅日志输入的格式)我得到字段:
time => 2015/02/25 18:33:06 +0000
method => INFO
PATH => <empty>
message => c.a.p.c.b.s.Monitor akka://application/user/daemons/monitor : 91 active threads, 4175691776 bytes used
我无法打破消息字符串。 我希望匹配的组是:
time => 2015/02/25 18:33:06 +0000
method => INFO
PATH => c.a.p.c.b.s.Monitor
message => akka://application/user/daemons/monitor : 91 active threads, 4175691776 bytes used
什么是正确的正则表达式
问题是输入字符串中INFO
和capcbsMonitor
之间有两个空格。 添加一个+
以允许该位置的一个或多个空格,您将获得:
(?<time>[^ ]* [^ ]*) (?<method>[^ ]*) +(?<path>[^ ]*) (?<message>[^ ].*$)
您可能想要也可能不想将这些添加到其他组件中,例如:
(?<time>[^ ]* [^ ]*) +(?<method>[^ ]*) +(?<path>[^ ]*) +(?<message>[^ ].*$)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.