slack -> Incoming WebHooks 추가
Incoming WebHooks -> 수신 웹후크 통합 앱 추가
웹 후크 URL 복사 및 저장
application.properties 파일 설정
logging.slack.webhook-uri=https://hooks.slack.com/services/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
logging.config=classpath:logback-spring.xml
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<!-- Spring 속성에서 'logging.slack.webhook-uri' 값을 가져와 'SLACK_WEBHOOK_URI' 변수에 저장 -->
<springProperty name="SLACK_WEBHOOK_URI" source="logging.slack.webhook-uri"/>
<!-- Slack 알림을 위한 Appender를 설정 -->
<appender name="SLACK" class="com.github.maricn.logback.SlackAppender">
<!-- Slack 웹훅 URI 설정. 위에서 정의한 SLACK_WEBHOOK_URI 변수 값을 사용 -->
<webhookUri>${SLACK_WEBHOOK_URI}</webhookUri>
<!-- 로그 메시지의 출력 형식을 정의 -->
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %msg %n</pattern>
</layout>
<!-- Slack 메시지에서 사용할 사용자 이름 설정. -->
<username>Cake-Server-log</username>
<!-- Slack 메시지에서 사용할 이모티콘 설정. -->
<iconEmoji>:stuck_out_tongue_winking_eye:</iconEmoji>
<!-- Slack 메시지에 색상 코드를 사용하여 로그 레벨 별로 색상을 변경 -->
<colorCoding>true</colorCoding>
</appender>
<!-- 콘솔에 로그 메시지를 출력하기 위한 Appender를 설정 -->
<appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!-- 로그 메시지의 출력 형식을 정의 -->
<Pattern>%d %-5level %logger{35} - %msg%n</Pattern>
</encoder>
</appender>
<!-- 비동기 로깅을 위한 Appender 설정. SLACK Appender를 참조하여 Slack으로 로그 메시지를 전송 -->
<appender name="ASYNC_SLACK" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="SLACK"/>
</appender>
<!-- Root logger 설정. 로그 레벨을 INFO로 설정하며, Console 및 ASYNC_SLACK Appender를 사용하여 로그 메시지를 출력 -->
<root level="INFO">
<appender-ref ref="Console" />
<appender-ref ref="ASYNC_SLACK"/>
</root>
</configuration>
// slack logback
implementation 'com.github.maricn:logback-slack-appender:1.4.0'