Skip to content

Commit

Permalink
fix: slack 생명주기 불일치로 인한 에러 해결
Browse files Browse the repository at this point in the history
  • Loading branch information
jaeuk520 committed Sep 22, 2024
1 parent 45a653a commit 15ca860
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
24 changes: 24 additions & 0 deletions src/main/java/com/ku/covigator/support/slack/RequestInfo.java
Original file line number Diff line number Diff line change
@@ -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();
}
}
Original file line number Diff line number Diff line change
@@ -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;
Expand Down Expand Up @@ -29,21 +29,24 @@ 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) {
log.error("Slack 통신 예외 발생");
}
}

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 + " 발생 에러 로그")
Expand Down

0 comments on commit 15ca860

Please sign in to comment.