SpringBoot Slack Webhooks

song yuheon·2023년 9월 30일
0

Spring

목록 보기
88/93

SpringBoot에서 webhook를 사용해서 로그 관리


구현


  1. slack -> Incoming WebHooks 추가

  2. Incoming WebHooks -> 수신 웹후크 통합 앱 추가

  1. 웹 후크 URL 복사 및 저장

  2. application.properties 파일 설정

logging.slack.webhook-uri=https://hooks.slack.com/services/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
logging.config=classpath:logback-spring.xml
  1. 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>
  1. build.gradle 설정
	// slack logback
	implementation 'com.github.maricn:logback-slack-appender:1.4.0'

결과



profile
backend_Devloper

0개의 댓글