diff --git a/src/main/java/com/ku/covigator/controller/ControllerAdvice.java b/src/main/java/com/ku/covigator/controller/ControllerAdvice.java index d79e4cd..66a331d 100644 --- a/src/main/java/com/ku/covigator/controller/ControllerAdvice.java +++ b/src/main/java/com/ku/covigator/controller/ControllerAdvice.java @@ -2,7 +2,7 @@ import com.ku.covigator.dto.response.ErrorResponse; import com.ku.covigator.exception.CovigatorException; -import com.ku.covigator.support.SlackAlarmGenerator; +import com.ku.covigator.support.slack.SlackAlarmGenerator; import jakarta.servlet.http.HttpServletRequest; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; diff --git a/src/main/java/com/ku/covigator/support/slack/RequestInfo.java b/src/main/java/com/ku/covigator/support/slack/RequestInfo.java new file mode 100644 index 0000000..a591a4e --- /dev/null +++ b/src/main/java/com/ku/covigator/support/slack/RequestInfo.java @@ -0,0 +1,24 @@ +package com.ku.covigator.support.slack; + +import jakarta.servlet.http.HttpServletRequest; +import lombok.Builder; +import lombok.Getter; + +@Builder +@Getter +public class RequestInfo { + + private String header; + private String remoteAddr; + private String method; + private String requestURL; + + public static RequestInfo from(HttpServletRequest request) { + return RequestInfo.builder() + .header(request.getHeader("X-FORWARDED-FOR")) + .remoteAddr(request.getRemoteAddr()) + .method(request.getMethod()) + .requestURL(request.getRequestURI()) + .build(); + } +} diff --git a/src/main/java/com/ku/covigator/support/SlackAlarmGenerator.java b/src/main/java/com/ku/covigator/support/slack/SlackAlarmGenerator.java similarity index 90% rename from src/main/java/com/ku/covigator/support/SlackAlarmGenerator.java rename to src/main/java/com/ku/covigator/support/slack/SlackAlarmGenerator.java index 80468f7..97c0403 100644 --- a/src/main/java/com/ku/covigator/support/SlackAlarmGenerator.java +++ b/src/main/java/com/ku/covigator/support/slack/SlackAlarmGenerator.java @@ -1,4 +1,4 @@ -package com.ku.covigator.support; +package com.ku.covigator.support.slack; import com.ku.covigator.config.properties.SlackProperties; import com.slack.api.Slack; @@ -29,11 +29,14 @@ public class SlackAlarmGenerator { @Async public void sendSlackAlertErrorLog(Exception e, HttpServletRequest request) { + + RequestInfo requestInfo = RequestInfo.from(request); + try { slack.send(slackProperties.getUrl(), payload(p -> p .text("[서버 에러 발생]") .attachments( - List.of(generateSlackAttachment(e, request)) + List.of(generateSlackAttachment(e, requestInfo)) ) )); } catch (IOException slackError) { @@ -41,9 +44,9 @@ public void sendSlackAlertErrorLog(Exception e, HttpServletRequest request) { } } - private Attachment generateSlackAttachment(Exception e, HttpServletRequest request) { + private Attachment generateSlackAttachment(Exception e, RequestInfo request) { String requestTime = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS").format(LocalDateTime.now()); - String xffHeader = request.getHeader("X-FORWARDED-FOR"); + String xffHeader = request.getHeader(); return Attachment.builder() .color("ff0000") .title(requestTime + " 발생 에러 로그")