gpt4 book ai didi

regex - LogMX 正则表达式解析器的问题

转载 作者:行者123 更新时间:2023-12-01 10:47:20 25 4
gpt4 key购买 nike

我们使用 LogMX 日志查看器通过正则表达式解析器来监控我们的应用程序日志。

每次日志消息包含“-”字符时,LogMX 都不会按预期解析日志事件。

例如,下面的日志事件:

[错误] | com.nsoft.gmonitor.Controller - 文件加载器 - 加载文件“C:\GMonitor\prefs.properties - 复制”时出错

解析为:

  • 发射器:com.nsoft.gmonitor.Controller - 文件加载器

  • 线程:加载文件“C:\GMonitor\prefs.properties时出错

  • 消息:- 复制“

代替:

  • 发射器:com.nsoft.gmonitor.Controller

  • 线程:文件加载器

  • 消息:加载文件“C:\GMonitor\prefs.properties- Copy”时出错

我们正在使用以下正则表达式:

\[(.*)\]\| (.*) - (.*) - (.*)

感谢您的帮助。

最佳答案

你应该改用这个正则表达式:

\[(.*)\]\| (.*?) - (.*?) - (.*)

我刚刚在 .* 之后为“发射器”和“线程”字段/组添加了一个 ? 字符。这是一个常见的正则表达式问题(不特定于 LogMX):

  • .* 称为贪婪量词:这意味着它将尝试匹配最大数量的字符

  • .*? 被称为 reluctant 量词:这意味着它将尝试匹配最少数量的字符

您可以在 JDK API 中阅读更多相关信息(搜索“贪婪”)或 LogMX docs .

PS:如果您不想使用正则表达式来解析 LogMX 中的日志,您可以使用它的“Log4j/Logback pattern Parsers”来代替:模式 [%p] | %c - %t - %m 将满足您的需要,并且默认情况下默认情况下不愿意用于所有字段/组。

关于regex - LogMX 正则表达式解析器的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24373720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com