Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用springaop进行日志记录_Spring_Logging_Aop_Spring Aop - Fatal编程技术网

使用springaop进行日志记录

使用springaop进行日志记录,spring,logging,aop,spring-aop,Spring,Logging,Aop,Spring Aop,我正在尝试向我的应用程序添加某种跟踪。它的工作原理是这样的:我在我的配置中设置了包名,并且记录了对该包中类的公共方法的所有调用 由于一些技术原因,我不能在这里使用编织,所以我尝试使用spring代理。 我的切入点 execution(public * com.my.package.*.*(..)) 而且效果很好。但是Spring使用代理或CGLIB来代理类,所以每个类至少应该 具有无参数构造函数 所有方法都应该是某些接口的实现 无法代理其他类。我可以不记录它们。但是spring创建了代理并破

我正在尝试向我的应用程序添加某种跟踪。它的工作原理是这样的:我在我的配置中设置了包名,并且记录了对该包中类的公共方法的所有调用

由于一些技术原因,我不能在这里使用编织,所以我尝试使用spring代理。 我的切入点

execution(public *  com.my.package.*.*(..))
而且效果很好。但是Spring使用代理或CGLIB来代理类,所以每个类至少应该

具有无参数构造函数 所有方法都应该是某些接口的实现 无法代理其他类。我可以不记录它们。但是spring创建了代理并破坏了我的应用程序


我如何告诉spring:如果这个类没有无参数构造函数,并且它的一些方法不是接口的实现,那么不要代理它?

不确定您的问题的答案,但是,另一种跟踪方法是使用注释:

public @interface Monitor {
}
方面:

public aspect MonitoringAspect {
pointcut methodToMonitor() : execution(@Monitor * *(..));
}
用法:

@Monitor
public void methodToBeMonitored() {
}
这样,您只会影响您想要的方法。
我想对于一个大型项目,这可能不起作用,因为您需要监视许多方法。

谢谢,但我不想更改我的类来添加日志记录。我想从外部管理日志记录。这就是以下方面: