从日志文件中提取 Java 堆栈跟踪的工具 [已关闭]
2022-09-01 20:30:09
是否有任何工具可以提取日志文件中出现的堆栈跟踪列表,并可能计算唯一的堆栈跟踪?
编辑:我会预先考虑一些不基于GUI的东西,并在后台运行并返回某种报告。我从多个环境中收集了相当多的日志,只是想快速了解一下。
是否有任何工具可以提取日志文件中出现的堆栈跟踪列表,并可能计算唯一的堆栈跟踪?
编辑:我会预先考虑一些不基于GUI的东西,并在后台运行并返回某种报告。我从多个环境中收集了相当多的日志,只是想快速了解一下。
这是一个快速而肮脏的grep表达...如果您使用的是记录器,例如log4j,则异常的第一行通常将包含或,下一行将包含异常名称,并选择性地包含一条消息,然后后续的堆栈跟踪将以下列之一开始:WARN
ERROR
"\tat"
(选项卡 + 在)"Caused by: "
"\t... <some number> more"
(这些行指示堆栈中未显示在“由引起”异常中的帧数)我们想要获取上述所有行,因此 grep 表达式为:
grep -P "(WARN|ERROR|^\tat |Exception|^Caused by: |\t... \d+ more)"
它假设 Exception 类始终包含可能为真或可能不真实的单词,但这毕竟是快速而肮脏的。Exception
根据您的具体情况进行必要的调整。
你可以很容易地自己写这个。模式如下:
"\n\tat "
at
现在,您需要做的就是找到第一行,而不是开头的行来查找堆栈跟踪的末尾。之后,您可能希望跳过 1-3 行以捕获链接的异常。\t
另外,在堆栈跟踪的第一行之前添加几行(例如 10 或 50)以获取一些上下文。