Spring

SlackAppender를 이용한 Logback Slack 알림 받기

Beekei 2022. 12. 1. 18:44
반응형

Application에 개발자가 예상하지 못한 오류가 발생하면 사용자의 문의보다 빠르게 발생과 원인을 알 수 있도록 슬랙 알림 설정을 해보자.

Application은 Spring Boot로 로그는 Logback을 사용해서 간단한 설정으로 Slack 알림을 받아볼 수 있다.

 

1. Slack Webhook 앱 생성

슬랙 사이드 바 하단에 앱 추가 버튼을 클릭 해 WebHooks 앱을 추가한다.

생성된 웹후크 URL을 복사


2. Logback Slack Appender 의존성 추가 및 Logback 설정

build.gradle

dependencies {	
    ...
    
    implementation group: 'com.github.maricn', name: 'logback-slack-appender', version: '1.6.1'
}

application.yml

...

logging:
  config: classpath:logback-spring.xml

 

logback-spring.xml

<configuration>
	
    ...
    
    <appender name="ApiErrorSlackAlarm" class="com.github.maricn.logback.SlackAppender">
        <!-- 오류 로그만 필터링 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <!-- 슬랙 웹후크 URL -->
        <webhookUri>https://hooks.slack.com/services/.....</webhookUri>
        <!-- 메시지 발신자 이름 -->
        <username>ERROR-ALARM</username>
        <!-- 메시지 이모지 -->
        <iconEmoji>:shake:</iconEmoji>
        <!-- 로그 레벨에 컬러 코딩을 사용 -->
        <colorCoding>true</colorCoding>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>[%d{yyyy-MM-dd HH:mm:ss}][%thread] %-5level %logger{36} - %msg</pattern>
        </layout>
    </appender>
	
    ...
    
    <springProfile name="local">
        <logger name="com.sample.project.LoggingAspect" level="INFO">
            ...
            <appender-ref ref="ApiErrorSlackAlarm" />
        </logger>
    </springProfile>
   
</configuration>

webhookUri에 위에서 복사한 URL을 넣어준다.


3. 테스트

application 내에서 테스트로 오류를 발생시켜 보면 설정한 에러 로그가 슬랙으로 발송된것을 확인할 수 있다.

 

참 슬랙은 연동하기 편한것...

반응형