gpt4 book ai didi

java - 如何自动记录Java中方法的进入/退出?

转载 作者:IT老高 更新时间:2023-10-28 20:46:09 27 4
gpt4 key购买 nike

现在我正在使用 java.util.logging 来记录我的 Java 项目中每个方法的入口和导出点。这在调试时对我非常有用。

我在每个方法的开头都有这段代码,在结尾处有类似的代码:

if (logger.isLoggable(Level.FINER)) {
logger.entering(this.getClass().getName(), "methodName");
}

其中“methodName”是方法的名称(硬编码)。

所以我想知道是否有一种方法可以自动执行此操作,而不必在每个方法中都包含此代码。

最佳答案

我建议使用面向方面的编程。

例如,使用 AspectJ编译器(可以集成到 Eclipse、Emacs 和其他 IDE 中),您可以创建这样一段代码:

aspect AspectExample {
before() : execution(* Point.*(..))
{
logger.entering(thisJoinPointStaticPart.getSignature().getName(), thisJoinPointStaticPart.getSignature().getDeclaringType() );

}

after() : execution(* Point.*(..))
{
logger.exiting(thisJoinPointStaticPart.getSignature().getName() , thisJoinPointStaticPart.getSignature().getDeclaringType() );

}
}

这方面在“Point”类中的所有方法执行前后添加了一个日志记录代码。

关于java - 如何自动记录Java中方法的进入/退出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12732069/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com