基于Instrumentationbased logging framewok for Java
我正在努力追踪我的一个Java项目中的一个问题,目前我面临着一种可能性,那就是必须手动将大量日志语句添加到一整套方法中。正如你可能理解的那样,我不太喜欢这个想法:
这些方法中的大多数都对性能至关重要,我不希望在不需要的时候添加日志记录,即使它像log4j一样轻量级
在某些情况下,我希望记录Java库中类的操作。虽然OpenJDK源代码是可用的,但我不打算为此提供我自己的Java库版本
我对在特定条件下记录特定代码路径感兴趣。虽然我可能会集中日志适用性检查,但如果我需要修改条件,我仍然可以预见未来的重构
大量添加日志语句需要大量的工作和时间,我宁愿更有效地使用这些工作和时间
考虑到字节码操作库的存在,比如Javassist和BCEL,我希望有一个日志框架,可以让我不用操心繁重的工作
由于我主要感兴趣的是在特定条件下记录方法调用参数和返回值,是否有一个基于工具的Java日志框架允许我这样做?最好是比Java agents更现代、更不尴尬的东西
# 1 楼答案
试试这个开源工具:http://code.google.com/p/perfspy/。它是一个运行时日志记录、性能监视和代码检查工具。它使用ApsectJ在运行时围绕应用程序代码运行,并记录每个方法的执行时间及其输入参数和值。它有一个UI应用程序,您可以在其中以树的形式查看方法调用及其输入和返回值。通过它,您可以发现性能瓶颈并理解复杂的代码流