Debugging 结构化调试日志

Debugging 结构化调试日志,debugging,logging,Debugging,Logging,我正在编写一个复杂的应用程序(编译器分析)。为了调试它,我需要检查应用程序的执行跟踪,以确定其值和数据结构在执行期间是如何演变的。对于我来说,一次运行生成兆字节的文本输出并筛选所有这些非常耗费人力的内容是很常见的。为了帮助我管理这些日志,我编写了自己的库,用HTML对它们进行格式化,并使不同代码区域的文本着色和在调用的函数中缩进代码变得容易。输出的一个例子是 我的问题是:有没有比我自己的家庭图书馆更好的解决方案?我需要一些方法来发出调试日志,其中可能包含任意文本和图像,并对它们进行可视化结构,如

我正在编写一个复杂的应用程序(编译器分析)。为了调试它,我需要检查应用程序的执行跟踪,以确定其值和数据结构在执行期间是如何演变的。对于我来说,一次运行生成兆字节的文本输出并筛选所有这些非常耗费人力的内容是很常见的。为了帮助我管理这些日志,我编写了自己的库,用HTML对它们进行格式化,并使不同代码区域的文本着色和在调用的函数中缩进代码变得容易。输出的一个例子是


我的问题是:有没有比我自己的家庭图书馆更好的解决方案?我需要一些方法来发出调试日志,其中可能包含任意文本和图像,并对它们进行可视化结构,如果可能的话,对它们进行索引,以便轻松找到我最感兴趣的输出区域。有类似的东西吗?

不管你没有提到应用的语言,我想推荐apache Log4XXX系列:


它提供可定制的细节级别以及标签驱动的记录器。GUI工具(链锯)可以与“旧的好的”GREP方法相结合(因此您只看到您目前感兴趣的内容)

Chainsaw的最新开发者快照中提供了使用表达式语法的着色、搜索和过滤功能。表达式语法还支持正则表达式(使用'like'关键字)

链锯可以解析任何常规文本日志文件,而不仅仅是log4j生成的日志文件

链锯的最新开发人员快照可在以下位置获得:

文件、加载链锯配置菜单项用于定义要处理的日志文件的“格式”和位置,表达式语法可在教程中找到,可从“帮助”菜单获得


如果您还有其他问题,请随时通过电子邮件发送log4j用户列表。

我创建了一个框架,可能会对您有所帮助,

我在10年前就在这一领域进行了研究。你所拥有的和我所见过的一样好;我特别喜欢HTML版本。我的建议是尝试用不同的方法来描述每个痕迹。一种可能是生成一个光栅图像,其中每一行都是表示调用图深度的条形图。第二个维度可以用颜色来表示,比如说显示动态内存使用。但只有你知道你对什么感兴趣!在优化可视化时,您需要能够重新处理旧日志以生成新的输出。当你的论文被写下来时,在文章上贴一个链接:-)你有没有可能写一篇博客或要点/示例如何使用链锯以编程方式从日志文件中获取日志事件(不需要任何GUI)只是在哈希映射或Pojo中的日志字段?非常感谢。