【发布时间】:2014-05-02 22:46:33
【问题描述】:
我试图让 Heka 读取我的 Monolog 文件(以便我可以使用 Kibana 查看它们),但它一直告诉我没有匹配项。
这是我的 Heka 配置中的 match_regex:
match_regex = "^\\[(?P<Timestamp>.*)\\] (?P<Channel>.+?)\\.(?P<Severity>[A-Z]+): (?P<Message>.*)"
这是日志中的示例行
[2014-03-24 19:07:08] event.DEBUG: Notified event "kernel.terminate" to listener "Symfony\Component\HttpKernel\EventListener\ProfilerListener::onKernelTerminate"
根据 regex101 (see here),正则表达式非常好。然而海拉却告诉我不匹配。
有人能指点我正确的方向吗,我昨天花了一整天的时间试图让它发挥作用。
编辑:我能找到的关于 Heka 和 Monolog 的唯一文档是这些幻灯片 here
编辑:我刚刚发现了这个:https://regoio.herokuapp.com/
这告诉我它应该使用以下内容:
match_regex = '^\[(?P<Timestamp>.*)\] (?P<Channel>.+?)\.(?P<Severity>[A-Z]+): (?P<Message>.*)'
但事实并非如此。
【问题讨论】:
-
可能是因为正则表达式以
^开头?也许您需要设置正则表达式多行修饰符之类的?这使得^也匹配行的开头,而不仅仅是完整字符串的开头。 regular-expressions.info/anchors.html -
似乎 ^ 不是问题,似乎我缺乏注意力是问题,我确实尝试过使用和不使用 ^ 但没有得到任何东西,只是因为我忘记设置输出