Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 웹개발
- 스파르타코딩클럽
- java
- JavaScript
- JWT
- MYSQL
- 데이터베이스
- 시큐리티
- @jsonproperty
- 카프카
- docker
- CentOS
- EC2
- Spring
- DB
- 개인프로젝트
- 스웨거
- Kafka
- 남궁성과 끝까지 간다
- 프로그래머스
- 패스트캠퍼스
- AWS
- Spring Security
- 스프링의 정석
- 항해99
- WEB SOCKET
- emqx
- visualvm
- 쇼트유알엘
- 생성자 주입
Archives
- Today
- Total
Nellie's Blog
AOP를 사용하여 에러 로그 찍기 본문
728x90
앞의 두 글에 심화된 내용이다.
설정은 그대로 하고,
package com.example.first.aop;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.AfterThrowing;
import org.aspectj.lang.annotation.Aspect;
import org.slf4j.Logger;
import org.springframework.stereotype.Component;
@Aspect
@Component
@Slf4j
@RequiredArgsConstructor
public class LogAopComponent {
// HomeController의 모든 메서드에서 에러가 발생할 때, 에러 메시지가 로그로 찍힘
@AfterThrowing(pointcut = "execution(* com.example.first.controller.*(..))", throwing = "ex")
public void logError(Exception ex) {
log.error("에러 발생: " + ex.getMessage());
}
}
모든 컨트롤러에 에러가 발생하면 에러로그를 찍고 싶다면, 위와 같이 작성한다.
일일이 컨트롤러 하나하나, 메소드 하나하나에 에러 처리를 지정해주지 않아도 된다.
@AfterThrowing() 안에 원하는 경로 및 클래스를 지정해주고,
원하는 행위를 적어주면 된다.
나는 간단하게 에러가 발생 시, 다른 처리 없이 로그만 찍어주기로 했다.
로그인 시 , 비밀번호를 다르게 작성했다.
익셉션 처리를 따로 하지 않아 바로 에러가 터진다.
로깅 설정도 해주었기 때문에 로깅 파일에도 잘 저장이 된다.
이렇게 AOP를 사용하면 일일이 에러 처리를 해주지 않아도 한번에 원하는 경로만 작성만으로,
한번에 에러 처리를 할 수 있다!
'Back-end > java' 카테고리의 다른 글
스트림의 중간연산과 최종연산 목록 표 (0) | 2024.01.01 |
---|---|
@RequestBody 호출 시 일어나는 일을 간단히 알아보기 (feat. MessageConverter, ObjectMapper) (1) | 2023.12.06 |
로컬 디스크에 자바 로깅 기록하기 (spring.log) (0) | 2023.09.26 |
완전 간단하게 AOP로 log찍기 (0) | 2023.09.26 |
빌드 중 NoSuchFileException 에러 미해결 (0) | 2023.09.26 |