SCKorea / sc-backend

스타시티즌에 대한 한국어 패치를 배포하고 게임 뉴스를 DeepL 기반으로 번역하여 제공하는 서비스
https://sc.galaxyhub.kr/
1 stars 0 forks source link

feat: ExceptionHandler의 로깅을 디버그일 때 출력하고, 각 컴포넌트에서 로깅하도록 변경한다. #62

Closed seokjin8678 closed 10 months ago

seokjin8678 commented 10 months ago

이슈 내용

지금 코드의 경우, 요청에서 예외가 발생할 때 마다 로깅을 하고 있습니다.

@ExceptionHandler(GalaxyhubException::class)
fun handleGalaxyhubException(
    e: GalaxyhubException,
    request: HttpServletRequest,
): ResponseEntity<ApiResponse<Unit>> {
    when (e.logLevel) {
        LogLevel.ERROR -> log.error(e) { "[🔴ERROR] - (${request.method} ${request.requestURI})" }
        LogLevel.WARN -> log.warn(e) { "[🟠WARN] - (${request.method} ${request.requestURI})" }
        LogLevel.INFO -> log.info(e) { "[🔵INFO] - (${request.method} ${request.requestURI})" }
        LogLevel.DEBUG -> log.debug(e) { "[🟢DEBUG] - (${request.method} ${request.requestURI})" }
    }
    return ResponseEntity(ApiResponse.error(e.message!!), e.httpStatus)
}

이때 불필요하게 로그가 쌓일 수 있기 때문에 중요한 로그가 무시될 가능성이 있습니다. 로그 때문에 발생하는 부하도 덤이구요.

따라서 필요한 로그만 직접 컴포넌트에서 남기는 방식으로 변경하여 문제의 발생 가능성을 줄이도록 합니다.