java - 从日志文件中提取 Java 堆栈跟踪的工具

标签 java exception logging stack-trace

是否有任何工具可以提取出现在日志文件中的堆栈跟踪列表并可能计算唯一的堆栈跟踪?

编辑:我更喜欢不是基于 GUI 的东西,而是在后台运行并返回某种报告。我从几个环境中收集了很多日志,只是想快速了解一下。

最佳答案

这是一个简单粗暴的 grep 表达式...如果您使用诸如 log4j 之类的记录器,那么异常的第一行通常会包含 WARNERROR ,下一行将包含异常名称和可选的消息,然后后续堆栈跟踪将以下列之一开始:

  1. "\tat" (制表符 + at)
  2. "Caused by: "
  3. "\t... <some number> more" (这些行表示堆栈中的帧数,未显示在“由”异常中)
  4. 堆栈前的异常名称(可能还有消息)

我们要获取上面所有的行,所以 grep 表达式为:

grep -P "(WARN|ERROR|^\tat |Exception|^Caused by: |\t... \d+ more)"

它假定一个异常类总是包含单词 Exception这可能是真的,也可能不是,但这毕竟是快速而肮脏的。

根据您的具体情况进行调整。

关于java - 从日志文件中提取 Java 堆栈跟踪的工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6107700/

相关文章:

java log4j 选择记录到哪个文件

java - 使用pdfbox从PDF文件中提取文本

c++ - std::stoul 不抛出 std::out_of_range

javascript - 使用函数设置变量值的单行代码,如果为假则抛出异常

android - 日志标签最多可包含 23 个字符

TomCat 延迟存储日志

java - 这个概念叫什么?

java - gzipinputstream 大小限制

c++ - 编译器如何知道使用哪个 catch block ?

Linux向日志文件添加监听器