Wprowadzam program rejestrujący jako aspekt przy użyciu Spring AOP i Log4J, ale zauważyłem, że nazwa klasy w pliku dziennika jest zawsze nazwą klasy LoggerAspect
, więc .. Czy istnieje sposób śledzenia rzeczywistej nazwy klasy w moim dzienniku?Log4j i AOP, jak uzyskać aktualną nazwę klasy
5
A
Odpowiedz
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
Działa to nawet w przypadku klas proxy (nazwa nieokreślona jest wyświetlana w komunikacie dziennika). – jolo
7
łatwiej to:
pjp.getTarget().getClass()
+0
Ale jeden problem ProceedingJoinPoint jest obsługiwany tylko dla porady tylko nie dla przed lub po –
Powiązane problemy
- 1. SharePoint uzyskać aktualną nazwę konta użytkownika?
- 2. Pobierz aktualną "nazwę klasy" po odziedziczeniu klasy/prototypu
- 3. uzyskać aktualną klasę i metodę?
- 4. Jak uzyskać aktualną nazwę strefy czasowej w Postgresie 9.3?
- 5. Jak uzyskać aktualną datę?
- 6. Log4j 2. Jak uzyskać komunikaty debugowania log4j?
- 7. Jak uzyskać nazwę klasy bez paczki?
- 8. Jak uzyskać nazwę klasy rodzica w Ruby
- 9. Jak uzyskać nazwę zespołu i nazwę klasy z pełną przestrzenią nazw danej klasy w rozwiązaniu?
- 10. Jak uzyskać nazwę klasy wywołującej w Javie?
- 11. Jak uzyskać nazwę klasy w PHP?
- 12. Jak mogę uzyskać nazwę metody z nazwą i nazwą klasy?
- 13. jak uzyskać pochodną nazwę klasy z klasy podstawowej
- 14. woocommerce, jak uzyskać aktualną kategorię
- 15. Jak uzyskać aktualną pozycję karetki?
- 16. log4j i obiekt ładujący klasy kontekstu wątku
- 17. Jak uzyskać aktualną godzinę w systemie Android?
- 18. Moment uzyskać aktualną datę
- 19. Jak znaleźć nazwę klasy potomnej z klasy bazowej?
- 20. Zdobądź aktualną nazwę użytkownika w Julia (Linux)
- 21. jak uzyskać aktualną otwartą aplikację użytkownika?
- 22. Jak uzyskać obiekt HttpServletRequest i HttpServletResponse w Spring AOP
- 23. Jak uzyskać odrębne rejestratory w log4j?
- 24. libclang uzyskać nazwę klasy od kursora
- 25. Dynamicznie uzyskać nazwę klasy na poziomie klasy zmiennej w python
- 26. Chcę uzyskać nazwę interfejsu z klasy implementacji
- 27. Mieszanie log4j 1.x i log4j 2
- 28. Jak uzyskać aktualną pozycję obrazu w jQuery?
- 29. Jak uzyskać aktualną wartość z ajaxQuery jQuery's
- 30. Jak uzyskać aktualną pozycję kursora ekranowego?
można uczynić go częścią samej wiadomości? – mazaneicha
Zobacz też: [Spring: Standardowy aspekt rejestrowania (przechwytywania)] (http://stackoverflow.com/questions/7302090) –