java - 我如何使用 log4j 自动记录类中调用的每个方法

标签 java log4j

我有一个带有数据库调用的类,我通常想用 log4j 记录这个类中调用的每个方法(带有参数):

logger.debug("foo(id="+id+") initiated");

是否可以自动执行此操作?也许通过在每个方法的开头使用某种注释而不是编写每个单独的 logger.debug?

今天,每次更改参数或方法名称时,我都必须更新我的 logging.debug。

最佳答案

尝试 @Loggable注释和来自 jcabi-aspects 的 AspectJ 方面(我是开发人员):

@Loggable(Loggable.INFO)
public String load(URL url) {
  return url.openConnection().getContent();
}

所有方法调用都通过 SLF4J 记录。

这篇博文逐步解释了它:Java Method Logging with AOP and Annotations

关于java - 我如何使用 log4j 自动记录类中调用的每个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13356326/

相关文章:

java - 如何在 log4j html 报告中包含日期和时间列

java - JPA 与 hibernate : Query generated by Hibernate contains duplicate

java - 获取最后添加的元素 Arraylist

java - 日志文件未使用 java 中的 log4j 更新/创建

java - slf4j 依赖项破坏 log4j 配置的问题

spring - log4j2 中 xwEx 的含义?

java - 有什么办法可以让这段代码更短吗?

java - 如何访问 Collection Generic Type 类

java - 如果类引用原始类型,则所有访问通过 ASM 生成的类的构造函数的反射方法都会抛出 NoClassDefFoundError

java - tomcat、2 个 webapps、2 个 log4js,但两个应用程序都记录到一个文件