복붙노트

[SPRING] 스프링없이 AspectJ 로깅 사용하기

SPRING

스프링없이 AspectJ 로깅 사용하기

로그가 없거나 로그가없는 오래된 응용 프로그램에서 작업하고 있습니다. Spring 프레임 워크를 구현하지 않습니다. Spring없이 AspectJ 로깅 기능을 구현할 수 있습니까? 그렇다면 좋은 자습서를 제안 해주십시오.

해결법

  1. ==============================

    1.스프링을 사용하지 않고 로딩 시간 짜기 사용을 보여주는 간단한 응용 프로그램에이 링크를 사용해보십시오. http://ganeshghag.blogspot.in/2012/10/demystifying-aop-getting-started-with.html

    스프링을 사용하지 않고 로딩 시간 짜기 사용을 보여주는 간단한 응용 프로그램에이 링크를 사용해보십시오. http://ganeshghag.blogspot.in/2012/10/demystifying-aop-getting-started-with.html

    필요한 모든 것은 aspectj runtime과 weaver jars, 적절한 설정을 담고있는 META-INF \ aop.xml 파일이다.

    스프링없이 aspectj ltw 사용에 대한 자세한 내용은 링크를 참조하십시오. http://www.eclipse.org/aspectj/doc/next/devguide/ltw.html

  2. ==============================

    2.Spring (또는 log4j)없이 aspectj를 사용하여 지원되는 모든 aspectpoint에서 메시지를 기록 할 수 있습니다.

    Spring (또는 log4j)없이 aspectj를 사용하여 지원되는 모든 aspectpoint에서 메시지를 기록 할 수 있습니다.

    예를 들어,

    public aspect ListAllMethodExecution {
        private int callDepth; 
    
        private pointcut executionJoinPoints(): !within(ListAllMethodExecution) && execution (* *.*(..));
    
        before(): executionJoinPoints(){
            print("Before call " + thisJoinPoint);
            callDepth++;
        }
    
        after(): executionJoinPoints(){
            callDepth--;
            print("After call " + thisJoinPoint);
        }
    
        private void print(String s){
            for(int i=0; i<callDepth; i++)
                System.out.print("    ");
            System.out.println(s);
        }
    }
    

    관심이있을 수있는 특정 이벤트 또는 다른 정적 joinpoint의 특정 패키지에서 로그하도록 pointcut 표현식을 수정할 수 있습니다. 또한 로그를 리디렉션 할 때 인쇄 방법을 수정할 수 있습니다.

    로드 시간 또는 컴파일 타임을 사용하여 수트로 사용할 수 있습니다. 희망이 도움이됩니다.

  3. ==============================

    3.스프링으로 직조하는로드 시간을 시험해보십시오.

    스프링으로 직조하는로드 시간을 시험해보십시오.

    즉, 클래스에 로깅 애스펙트를 추가하고 Spring IoC 컨테이너 외부의 오브젝트에 대한 통치에 의해 추가 할 수 있습니다.

  4. ==============================

    4.이 OpenSource가 도움이 될지도 모릅니다. https://code.google.com/p/perfspy/. 런타임 로깅, 성능 모니터링 및 코드 검사 도구입니다. ApsectJ를 사용하여 런타임에 응용 프로그램 코드를 묶어서 모든 메소드와 입력 매개 변수 및 값의 실행 시간을 기록합니다. 메소드 호출과 입력 및 리턴 값을 트리로 볼 수있는 UI 애플리케이션이 있습니다. 이를 통해 성능 병목 지점을 파악하고 복잡한 코드 흐름을 이해할 수 있습니다.

    이 OpenSource가 도움이 될지도 모릅니다. https://code.google.com/p/perfspy/. 런타임 로깅, 성능 모니터링 및 코드 검사 도구입니다. ApsectJ를 사용하여 런타임에 응용 프로그램 코드를 묶어서 모든 메소드와 입력 매개 변수 및 값의 실행 시간을 기록합니다. 메소드 호출과 입력 및 리턴 값을 트리로 볼 수있는 UI 애플리케이션이 있습니다. 이를 통해 성능 병목 지점을 파악하고 복잡한 코드 흐름을 이해할 수 있습니다.

  5. from https://stackoverflow.com/questions/11938487/using-aspectj-logging-without-spring by cc-by-sa and MIT license