diff --git a/backend/.gitignore b/backend/.gitignore index 577fe1e2e..fbaace4ec 100644 --- a/backend/.gitignore +++ b/backend/.gitignore @@ -44,3 +44,5 @@ src/main/resources/static/docs/ ### Ignore .DS_Store ### **/.DS_Store + +log/ diff --git a/backend/src/main/java/hanglog/global/exception/GlobalExceptionHandler.java b/backend/src/main/java/hanglog/global/exception/GlobalExceptionHandler.java index a0c3d8b65..1275a64d1 100644 --- a/backend/src/main/java/hanglog/global/exception/GlobalExceptionHandler.java +++ b/backend/src/main/java/hanglog/global/exception/GlobalExceptionHandler.java @@ -1,5 +1,7 @@ package hanglog.global.exception; +import java.util.Objects; +import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatusCode; import org.springframework.http.ResponseEntity; @@ -9,28 +11,33 @@ import org.springframework.web.context.request.WebRequest; import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler; -import java.util.Objects; - @RestControllerAdvice +@Slf4j public class GlobalExceptionHandler extends ResponseEntityExceptionHandler { - // TODO: Logger 달기 - @Override - protected ResponseEntity handleMethodArgumentNotValid(final MethodArgumentNotValidException ex, final HttpHeaders headers, final HttpStatusCode status, final WebRequest request) { - final String errMessage = Objects.requireNonNull(ex.getBindingResult().getFieldError()).getDefaultMessage(); + protected ResponseEntity handleMethodArgumentNotValid( + final MethodArgumentNotValidException e, + final HttpHeaders headers, + final HttpStatusCode status, + final WebRequest request + ) { + final String errMessage = Objects.requireNonNull(e.getBindingResult().getFieldError()).getDefaultMessage(); + log.warn(errMessage, e); return ResponseEntity.badRequest() .body(new ExceptionResponse(0000, errMessage)); } @ExceptionHandler(BadRequestException.class) public ResponseEntity handleBadRequestException(final BadRequestException e) { + log.warn(e.getMessage(), e); return ResponseEntity.badRequest() .body(new ExceptionResponse(e.getCode(), e.getMessage())); } @ExceptionHandler(Exception.class) public ResponseEntity handleException(final Exception e) { + log.error(e.getMessage(), e); return ResponseEntity.internalServerError() .body(new ExceptionResponse(9999, e.getMessage())); } diff --git a/backend/src/main/resources/logback-spring.xml b/backend/src/main/resources/logback-spring.xml new file mode 100644 index 000000000..ca7ec0205 --- /dev/null +++ b/backend/src/main/resources/logback-spring.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf8 + + + + + ${LOG_DIR}/error/${BY_DATE}.log + + ERROR + ACCEPT + DENY + + + ${CONSOLE_LOG_PATTERN} + utf8 + + + ${LOG_DIR}/backup/error/%d{yyyy-MM-dd}.%i.log + 100MB + 10 + 1GB + + + + + ${LOG_DIR}/warn/${BY_DATE}.log + + WARN + ACCEPT + DENY + + + ${CONSOLE_LOG_PATTERN} + utf8 + + + ${LOG_DIR}/backup/warn/%d{yyyy-MM-dd}.%i.log + 100MB + 10 + 1GB + + + + + + + + + +