我正在寻找一个能够在更高的抽象层上登录然后Log4J或类似的库。
我不想在每行所需的日志记录中调用一次框架,而是希望在操作开始时调用一次,一次在成功结束时调用,如果发生异常则可能调用一次。
然后,日志框架应创建开始,结束,持续时间,此操作在5分钟内执行的次数,各种模块/层中的时间花费(由包命名约定标识)的日志记录条目。
有这样的事吗? 在Java?
注意:我对提示如何自己实现这一点并不感兴趣。我现在正在这样做,只是想知道我是否正在重新发明轮子。
答案 0 :(得分:4)
听起来你不想要一个“日志记录”框架,你想要一个“分析”框架。
根据您对“操作”一词的含义,您想要的内容可能已经成为JVM的一部分...请查看较旧的JVMPI和较新的JVMTI。
events ("actions") you can trigger on列表包括方法输入或退出,抛出或捕获的异常,线程开始或结束,GC事件等......
在jvm中使用它的内置实现是hprof。如果您对命令行很方便,它可以为您提供正常的图片......
http://www.yourkit.com/曾经是一个很好的商业产品,但我很久没有使用它了。
Eclipse和Netbeans现在都有JVMTI插件,它们应该能够告诉你每个方法的调用频率,运行时间以及它们创建和/或销毁的对象数量......
答案 1 :(得分:3)
我不知道现有的日志框架可以解决您的问题(这并不意味着这样的框架不存在......)但我认为像Spring或AspectJ提供的AOP机制可以帮助你。所以,你需要检查一下你是否正在重新设计他们的切入点/编织设施。
答案 2 :(得分:2)
在SLF4J项目的日志记录设置中,有一些工作在Profiler上完成,但我不确定它对您来说是否足够高。你可能会受到启发:)