结构化调试日志

3
我正在编写一个复杂的应用程序(一个编译器分析器)。为了调试它,我需要检查应用程序的执行跟踪,以确定其值和数据结构在执行过程中如何演变。我通常会为单次运行生成几兆字节的文本输出,浏览这些内容非常费时费力。为了帮助我管理这些日志,我编写了自己的库,可以将它们格式化为 HTML,并轻松地对来自不同代码区域的文本进行颜色标记并缩进调用函数中的代码。以下是输出的示例:这里
我的问题是:是否有比我自己编写的库更好的解决方案?我需要一种方法来发出包括任意文本和图像的调试日志,并在视觉上对它们进行结构化,如果可能的话,对它们进行索引,以便我能够轻松找到最感兴趣的输出区域。是否有类似的工具存在?

我大约10年前在这个领域进行过研究。你所拥有的东西和我见过的任何东西一样好,我特别喜欢HTML版本。我的建议是尝试不同的方式来表征每个跟踪。其中一种可能是生成光栅图像,其中每一行都是一个表示调用图深度的条形。第二个维度可以用颜色表示,比如显示动态内存使用情况。但只有你知道自己感兴趣的是什么!随着你优化可视化效果,你将需要重新处理旧日志以产生新的输出。写完论文后请发布链接 :-) - andy256
3个回答

0

0

虽然您没有提到使用的编程语言,但我想推荐Apache Log4XXX系列:http://logging.apache.org/

它提供可自定义的详细级别和基于标签的记录器。GUI工具(chainsaw)可以与“老好”的GREP方法相结合(因此您只能看到当前感兴趣的内容)。


0

在最新的Chainsaw开发快照中,可以使用表达式语法进行颜色标记、搜索和过滤。表达式语法还支持正则表达式(使用“like”关键字)。

Chainsaw可以解析任何常规文本日志文件,不仅限于log4j生成的日志文件。

Chainsaw的最新开发快照可在此处获取: http://people.apache.org/~sdeboy

通过“文件”菜单中的“加载Chainsaw配置”菜单项,您可以定义要处理的日志文件的“格式”和位置,并且从帮助菜单中可以找到表达式语法的教程。

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


你有没有可能写一篇博客或者Gist示例,说明如何以编程方式使用chaing saw从日志文件中获取日志事件(不需要任何GUI),只需将日志字段存储在哈希映射或POJO中即可?谢谢。 - tgkprog

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接