diff --git a/build.gradle b/build.gradle index 852d78c8f..355bb28b0 100644 --- a/build.gradle +++ b/build.gradle @@ -30,6 +30,8 @@ dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-redis' implementation 'org.springframework.boot:spring-boot-starter-data-mongodb' + implementation 'net.logstash.logback:logstash-logback-encoder:8.0' + implementation 'io.jsonwebtoken:jjwt-api:0.12.3' implementation 'org.jsoup:jsoup:1.15.3' diff --git a/src/main/java/in/koreatech/koin/global/exception/ErrorResponse.java b/src/main/java/in/koreatech/koin/global/exception/ErrorResponse.java index d6c8cbae0..91c4ed5a7 100644 --- a/src/main/java/in/koreatech/koin/global/exception/ErrorResponse.java +++ b/src/main/java/in/koreatech/koin/global/exception/ErrorResponse.java @@ -11,10 +11,12 @@ public class ErrorResponse { private final int status; private final String message; private final String code; + private final String errorTraceId; - public ErrorResponse(int status, String message) { + public ErrorResponse(int status, String message, String errorTraceId) { this.status = status; this.message = message; this.code = ""; + this.errorTraceId = errorTraceId; } } diff --git a/src/main/java/in/koreatech/koin/global/exception/GlobalExceptionHandler.java b/src/main/java/in/koreatech/koin/global/exception/GlobalExceptionHandler.java index 1524cf59b..71b5a9505 100644 --- a/src/main/java/in/koreatech/koin/global/exception/GlobalExceptionHandler.java +++ b/src/main/java/in/koreatech/koin/global/exception/GlobalExceptionHandler.java @@ -4,6 +4,7 @@ import java.util.Enumeration; import java.util.HashMap; import java.util.Map; +import java.util.UUID; import java.util.stream.Collectors; import org.apache.catalina.connector.ClientAbortException; @@ -230,7 +231,9 @@ private ResponseEntity buildErrorResponse( HttpStatus httpStatus, String message ) { - var response = new ErrorResponse(httpStatus.value(), message); + String errorTraceId = UUID.randomUUID().toString(); + log.warn("traceId: {}", errorTraceId); + var response = new ErrorResponse(httpStatus.value(), message, errorTraceId); return ResponseEntity.status(httpStatus).body(response); } diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml index 44deb409c..e396b4fe7 100644 --- a/src/main/resources/logback-spring.xml +++ b/src/main/resources/logback-spring.xml @@ -50,5 +50,10 @@ ERROR + + + + +