2017-02-08 26 views
0

Я новичок в spring и log4j Я пытаюсь реализовать регистрацию с помощью aop и log4j. мой регистратор класса, как показано нижекак печатать определенные журналы классов, которые упоминаются в файле свойств log4j, используя Spring AOP

@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 ("исполнение (* контроллер. . (..)))") ввода журнала для печатаются все классы.

Итак, как распечатать журнал только те классы, которые настроены в файле log4j.properties.

ответ

1

Вы можете получить регистратор обычным способом:

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

Я не вижу, что совет вокруг изменится по сравнению с прежде, чем советы. Это не решает проблему OP. Однако нужно создать регистратор для целевого класса, как показано в вашем примере. Таким образом, ваш код верен, но я думаю, что «вам нужно будет использовать совет Around, иначе код превратится в кирпичную стену!» часть нет. Хороший код, плохое объяснение. – kriegaex

+1

@kriegaex согласился, что я изменил свой ответ. –