2012-08-28 3 views
0

로깅 OSGi 번들을 만들려고합니다. 특정 주석으로 표시된 모든 메서드의 입력, 출력, 예외 (있는 경우) 매개 변수를 기록 할 수 있습니다.메서드가 호출되는지 확인

나는 OSGiSpringAOP 로깅을 설정하려고했지만 실패했습니다.

내가 알아야 할 것은 메서드가 호출되는 시점을 결정하는 방법입니다. 예를 들어, 주석에 주석이 달린 클래스의 모든 메소드를 스캔했고 배열이나 목록에 이러한 메소드가 있습니다.

예를 들어, getStatus, getDetails, getSomething의 세 가지 방법이 있습니다. 그리고 사용자가 getDetails 메서드를 호출하므로이 메서드가 호출 될 때 어떻게 알 수 있습니까?

+0

http://stackoverflow.com/questions/442747/getting-the-name-of-the-current-executing-method/8592871#8592871 – pb2q

답변

0

메서드 호출을 감지하면 instrument your code이 필요합니다. 런타임에이 작업을 수행하려면 바이트 코드 조작이 필요합니다 (Spring AOP가 수행하는 것으로 알고 있습니다). 또는 인스트루먼트 된 Java 코드를 생성하는 사용자 정의 사전 처리 단계를 사용하여 컴파일 타임에 코드를 인스트루먼트 할 수 있지만 훨씬 쉬운지 여부는 알 수 없습니다.

최선의 방법은 봄 AOP 작업을 시도하는 것입니다.

관련 문제