• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

궁금한 점이 생겨 질문 남겨봅니다.

23.04.08 00:05 작성 조회수 175

0

자바 서비스로직의 트랜잭션내에서 오류가 발생하면 롤백이 될건데, 그러한 오류사항을 DB에 어떻게 로그로 남길 수 있는지 알 수 있을까요???

답변 1

답변을 작성해보세요.

1

OMG님의 프로필

OMG

2023.04.08

안녕하세요. 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()));
    }
}

 

 

.
감사합니다.