-
[Spring] Logger 객체 사용법Web/Servlet && Spring 2019. 8. 29. 09:24
logging
- 기록을 남기는것
- 앱 실행중 발생하는 이벤트나 다른사용자의 SW간의 메세지를 기록한 파일
Log Level의 6단계
FATAL - 아주 심각한
ERROR - 요청 처리중 에러
WARN - 향후 시스템 에러 원인이 될수 있는
INFO - 상태변경과 같은 정보성 메세지
DEBUG - 디버그 용도
TRACE - 디버그 보다 상세한 정보
이클립스에서는 SYSOUT으로 출력도 가능하지만 Logger클래스를 사용해 로그를 남기는게 좋다. 왜냐하면 Logger클래스는 에러의 단계를 지정할 수 있기 때문이다. 또 sysout이 많아지면 프로그램이 조금 느려질 수 있다.
사용법
MyLoggingAdvice.java 생성
Logger클래스는 import org.slf4j.Logger;
//Advice는 부가기능을 담당한다. 로깅을 담당할 클래스 public class MyLoggingAdvice { //import org.slf4j.Logger; public static final Logger logger= LoggerFactory.getLogger(MyLoggingAdvice.class); public void aroundAdvice(ProceedingJoinPoint joinPoint) throws Throwable { //추가로직 logger.info(joinPoint.getSignature().toString()); //메소드 실행 joinPoint.proceed(); } }
pom.xml에 속성 추가
<!-- AspectJ --> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>${org.aspectj-version}</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> <version>${org.aspectj-version}</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjtools</artifactId> <version>${org.aspectj-version}</version> </dependency> <!-- 클래스 단위의 aop를 사용하기 위해선 필요하다. --> <dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId> <version>2.2</version> </dependency>
servlet-context.xml 속성 추가
<!-- aop의 타겟을 인터페이스가 아닌 클래스로도 사용하겠다. 라는 옵션 --> <aop:config proxy-target-class="true"/> <beans:bean id="myLoggingAdvice" class="com.myway.tok.aop.MyLoggingAdvice"></beans:bean> <aop:config> <aop:aspect ref="myLoggingAdvice"> <!-- pointcut :언제 실행할래? --> <!--해당 패키지의 DAO가 실행될때!--> <aop:around method="aroundAdvice" pointcut="execution(* com.myway.tok.dao.*DAO.*(..))"/> </aop:aspect> </aop:config>
controller.java에서 추가
studentDAO.select();
위와 같은 식으로 호출시 StudentDAO클래스의 select메소드가 실행될때
Consol창에 INFO : com.myway.tok.aop.MyLoggingAdvice - void com.myway.tok.dao.StudentDAO.select() 라고 뜬다.
반응형'Web > Servlet && Spring' 카테고리의 다른 글
[Spring] mysql 에러 (mysql Data truncation: Incorrect string value:) (0) 2019.08.29 [Spring] mysql 연결 에러 해결 (deprecated) (0) 2019.08.29 [Spring] ContextLoaderListener에러 (0) 2019.08.27 [Spring] 부적합한 열유형:1111 에러 (0) 2019.08.27 [Spring] mariadb 와 연결하기 (0) 2019.08.25