基于工具的Java日志框架



我正试图追踪我的一个Java项目中的一个问题,我目前面临着不得不手动添加大量日志记录语句到一大堆方法的可能性。你也许可以理解,我不太喜欢那个主意。

  • 这些方法中的大多数都是性能关键的,我宁愿不添加日志,当它不需要的时候,即使它是轻量级的log4j。

  • 在某些情况下,我想记录Java库中类的操作。虽然OpenJDK源代码是可用的,但我不打算为此提供我自己的Java库版本。

  • 我对在特定条件下记录特定代码路径感兴趣。虽然我可能会集中日志适用性检查,但如果我需要修改条件,我仍然预见到将来会对不可预见的进行重构。

  • 添加日志语句en-mass需要大量的工作和时间,我宁愿更有效地利用它们。

考虑到字节码操作库的存在,如Javassist和BCEL,我希望可能会有一个日志框架,将繁重的工作从我的手中。

由于我主要对记录特定条件下的方法调用参数和返回值感兴趣,是否有一个基于工具的Java日志框架允许我这样做?最好是一些比Java代理更现代、不那么笨拙的东西?

日志记录是面向方面编程的"hello world"。

如果你已经是一个Spring用户,你将能够编写一个方面类来记录你想要的东西,然后以声明的方式将它编织到所有需要它的对象中。

Spring有自己的AOP实现;它还支持AspectJ.

如果你喜欢的话,你可以不使用Spring而使用AspectJ。

试试这个开源工具:http://code.google.com/p/perfspy/。它是一个运行时日志记录、性能监控和代码检查工具。它使用ApsectJ在运行时绕过应用程序代码,并记录每个方法的执行时间及其输入参数和值。它有一个UI应用程序,您可以在其中以树的形式查看方法调用及其输入和返回值。有了它,您可以发现性能瓶颈并理解复杂的代码流。

最新更新