2013년 9월 11일 수요일

AOP Logging

Interceptor logging 은 url 요청에 한해서만 로깅이 가능한 단점이 있다. 모든 class 에 대해 logging 관심사를 추가하는 aop 사용이 더 효율적이다.
 

 

설정 파일을 만들어 위의 내용을 작성한다. 필요한 lib 는 spring 관련 aop 와 aspectj, cglib2 이다. 자세한 내용은 검색 ㄱㄱ
package com.jetddo.study.advice;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;


@Aspect
@Component
public class LoggingAdvice {
 
 @Before("execution(* com.jetddo.study..*.*(..))") 
 public void loggingAdvice(JoinPoint joinPoint){
  
  String pointStr = joinPoint.toShortString();
  
  if(!pointStr.contains("SessionInterceptor")){
   System.out.println(" Method : "+pointStr);
   System.out.println("[ Arguments ]");
   Object[] objArray = joinPoint.getArgs();
   for(int i=0 ; i < objArray.length ; i++){
    System.out.println(i+" : "+objArray[i]);
   }
   System.out.println("--------------------------------------------------------------------");
  }
  
  
 }
}


위 class 를 추가한다.
execution(* com.jetddo.study..*.*(..))
에 대해서는 나중에 정리

댓글 없음:

댓글 쓰기