如何使用spring AOP打印log4j属性文件中提到的特定类日志

时间:2017-02-08 07:38:42

标签: spring logging log4j aspectj spring-aop

我是spring和log4j的新手 我尝试使用aop和log4j实现日志记录。  我的记录器类如下

  @Aspect
    public class AspectLogger {
        private Logger log = Logger.getLogger(getClass());


        @Before("execution(* controller.*.*(..)))")
        public void logBeforeV1(JoinPoint joinPoint) 
        {
            log.debug("entering " + joinPoint.getSignature().getName());
        }
    }

在我的控制器包中有超过20个类,当提到@Before(“执行(* controller。(..)))”) 输入所有类的日志方法。

那么如何只记录log4j.properties文件中配置的那些类。

1 个答案:

答案 0 :(得分:1)

您可以正常方式获取记录器:

@Before("execution(* controller.*.*(..)))")
public void logBeforeV1(JoinPoint joinPoint) 
{
  Logger log = Logger.getLogger(joinPoint.getSignature().getDeclaringType());
  log.debug("entering " + joinPoint.getSignature().getName());
}