是否有任何工具可以提取出现在日志文件中的堆栈跟踪列表并可能计算唯一的堆栈跟踪?
编辑:我更喜欢不是基于 GUI 的东西,而是在后台运行并返回某种报告。我从几个环境中收集了很多日志,只是想快速了解一下。
最佳答案
这是一个简单粗暴的 grep 表达式...如果您使用诸如 log4j 之类的记录器,那么异常的第一行通常会包含 WARN
或 ERROR
,下一行将包含异常名称和可选的消息,然后后续堆栈跟踪将以下列之一开始:
-
"\tat"
(制表符 +at
) -
"Caused by: "
-
"\t... <some number> more"
(这些行表示堆栈中的帧数,未显示在“由”异常中) - 堆栈前的异常名称(可能还有消息)
我们要获取上面所有的行,所以 grep 表达式为:
grep -P "(WARN|ERROR|^\tat |Exception|^Caused by: |\t... \d+ more)"
它假定一个异常类总是包含单词 Exception
这可能是真的,也可能不是,但这毕竟是快速而肮脏的。
根据您的具体情况进行调整。
关于java - 从日志文件中提取 Java 堆栈跟踪的工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6107700/