Spring LoggingInterceptor或AOP日志

Spring LoggingInterceptor或AOP日志,spring,aop,spring-aop,Spring,Aop,Spring Aop,我计划在春天处理日志记录 很少有人建议通过LoggingInterceptor进行处理,也有人建议使用AOP横切关注点 对于企业应用程序,建议遵循哪种做法或最佳做法 谢谢。两种方法都有各自的优点和缺点。通过LoggingInterceptor进行日志记录是更好的方法,因为它是Java提供的用于处理日志记录的标准库,您还可以进行自定义日志记录 当您想要在更细粒度的级别上实现日志记录,比如在函数或类的某些返回值上实现日志记录时,AOP更好。e、 如果只想在返回值为null时记录请求,则为g。您可以通

我计划在春天处理日志记录

很少有人建议通过LoggingInterceptor进行处理,也有人建议使用AOP横切关注点

对于企业应用程序,建议遵循哪种做法或最佳做法


谢谢。

两种方法都有各自的优点和缺点。通过LoggingInterceptor进行日志记录是更好的方法,因为它是Java提供的用于处理日志记录的标准库,您还可以进行自定义日志记录

当您想要在更细粒度的级别上实现日志记录,比如在函数或类的某些返回值上实现日志记录时,AOP更好。e、 如果只想在返回值为null时记录请求,则为g。您可以通过以下方式使用AOP进行操作:

@AfterReturning(pointcut = "execution(* com.foo.bar..*.*(..))", returning = 
 "retVal")
 public void logAfterMethod(JoinPoint joinPoint, Object retVal) {
  ...
 }
您还可以使用logging Interceptor记录返回值,但需要为此编写另一个函数。i-e

public void afterReturning(Object arg0, Method arg1, Object[] arg2, Object 
 arg3) throws Throwable { 
 log = LogFactory.getLog(arg3.getClass());
 log.info("LOGGING IS: "+arg1.getName()); 
}

从生产的角度来看,AOP有性能开销,因为您正在为所有服务调用的执行增加开销。而日志拦截只是一个具有正常执行周期的类。

这两种方法都有各自的优点和缺点。通过LoggingInterceptor进行日志记录是更好的方法,因为它是Java提供的用于处理日志记录的标准库,您还可以进行自定义日志记录

当您想要在更细粒度的级别上实现日志记录,比如在函数或类的某些返回值上实现日志记录时,AOP更好。e、 如果只想在返回值为null时记录请求,则为g。您可以通过以下方式使用AOP进行操作:

@AfterReturning(pointcut = "execution(* com.foo.bar..*.*(..))", returning = 
 "retVal")
 public void logAfterMethod(JoinPoint joinPoint, Object retVal) {
  ...
 }
您还可以使用logging Interceptor记录返回值,但需要为此编写另一个函数。i-e

public void afterReturning(Object arg0, Method arg1, Object[] arg2, Object 
 arg3) throws Throwable { 
 log = LogFactory.getLog(arg3.getClass());
 log.info("LOGGING IS: "+arg1.getName()); 
}
从生产的角度来看,AOP有性能开销,因为您正在为所有服务调用的执行增加开销。而日志截获只是一个具有正常执行周期的类