Estoy implementando un registrador como un aspecto utilizando Spring AOP y Log4J, pero me he dado cuenta de que el nombre de clase en el archivo de registro siempre es el nombre de clase LoggerAspect
, así que ... ¿Hay alguna manera de rastrear el nombre de clase real en mi registro?Log4j y AOP, cómo obtener el nombre de clase real
5
A
Respuesta
6
@Around("execution(* com.mycontrollerpackage.*.*(..))")
public Object aroundWebMethodE(ProceedingJoinPoint pjp) throws Throwable {
String packageName = pjp.getSignature().getDeclaringTypeName();
String methodName = pjp.getSignature().getName();
long start = System.currentTimeMillis();
if(!pjp.getSignature().getName().equals("initBinder")) {
logger.info("Entering method [" + packageName + "." + methodName + "]");
}
Object output = pjp.proceed();
long elapsedTime = System.currentTimeMillis() - start;
if(!methodName.equals("initBinder")) {
logger.info("Exiting method [" + packageName + "." + methodName + "]; exec time (ms): " + elapsedTime);
}
return output;
}
+0
Esto incluso funciona para las clases de proxy (el nombre sin proxy se muestra en el mensaje de registro). – jolo
7
esto es más fácil:
pjp.getTarget().getClass()
+0
Pero un problema es que ProceedJoinPoint solo se admite para consejos sobre todo, pero no antes o después –
Cuestiones relacionadas
- 1. Doctrina 2 Obtener el nombre de clase real de la clase proxy
- 2. ¿Cómo obtener el nombre de clase?
- 3. ruby convertir nombre de clase en cadena a clase real
- 4. Obtener el nombre de propiedad de clase
- 5. ¿Obtener el nombre de la clase actual?
- 6. ¿Cómo obtener el nombre de una clase sin el paquete?
- 7. ¿Cómo puedo obtener un nombre de método con el espacio de nombres y el nombre de clase?
- 8. obtener el ensamblaje por nombre de clase
- 9. log4j y el gestor de clase de contexto de hilos
- 10. Log4J nombre del show paquete
- 11. Obtener el nombre de clase de la clase extendida
- 12. Obtener el nombre de clase de la clase CONSTRUIR
- 13. Cómo obtener el nombre de una clase Mootools desde
- 14. ¿Obtener una clase por nombre en Ruby?
- 15. Cómo obtener el nombre de la clase usando jQuery
- 16. Cómo obtener el nombre de clase del método hijo estático
- 17. Obtener el nombre del objeto o clase
- 18. ¿Cómo obtener el tamaño real de JPanel?
- 19. ¿Cómo obtener el nombre del ensamblado y el nombre de clase con el espacio de nombre completo de una clase determinada en la solución?
- 20. Obtener el nombre de clase de un módulo
- 21. Geocodificación inversa para obtener un nombre de empresa real
- 22. Nombre de clase y nombre de archivo
- 23. ¿Cómo obtener madereros distintos en log4j?
- 24. obtener el nombre de archivo de la clase extendida
- 25. IoC, AOP y más
- 26. Python: ¿Obtener el nombre de la clase instanciando?
- 27. Obtener instancia de clase por nombre de clase cadena
- 28. ¿Cómo obtener el tipo real de un tipo genérico?
- 29. Cómo solucionar Spring AOP
- 30. ¿Obtener el nombre de la clase para padres?
¿Se puede hacer una parte del mensaje en sí? – mazaneicha
Vea también: [Spring: Aspecto de registro estándar (interceptor)] (http://stackoverflow.com/questions/7302090) –