작성
·
215
0
자바 서비스로직의 트랜잭션내에서 오류가 발생하면 롤백이 될건데, 그러한 오류사항을 DB에 어떻게 로그로 남길 수 있는지 알 수 있을까요???
답변 1
1
안녕하세요. dkswntjdgh님, 공식 서포터즈 OMG입니다.
.
AOP의 @AfterThrowing에 포인트컷 표현식을 service경로로 설정하고 에러 발생 직후의 동작을 지정할 수 있습니다. 아래 코드 예시를 참고해주세요 :)
@Slf4j
@Aspect
@Component
public class LoggingAspect {
@AfterThrowing(pointcut = "execution(* com.example.service.*(..))", throwing = "exception")
public void logAfterThrowing(JoinPoint joinPoint, Throwable exception) {
log.error("Transaction Error Occurred: {}", exception.getMessage());
// DB에 로그를 저장하는 로직 추가
saveLogToDB(exception);
}
private void saveLogToDB(Throwable exception) {
// DB에 로그를 저장하는 코드 작성
// 예: logRepository.save(new Log(exception.getMessage()));
}
}
.
감사합니다.