Backend/Spring Framework
[Spring Boot] 로그 Slack으로 보내기
mopil
2023. 7. 18. 13:23
반응형
서버에서 발생하는 로그를 슬랙으로 자동으로 전송하는 설정을 알아보자
# 웹훅 생성
웹훅을 먼저 생성한다. 위 글을 참조할 것
# application.properties 및 기타 설정
위 구조로 설정파일들을 생성한다.
application-dev.properties에서 logback 설정파일을 읽을 수 있도록 다음을 추가한다. (live도 동일)
logging.config=classpath:logback/logback-dev.xml
다음 의존성을 추가한다.
implementation("com.github.maricn:logback-slack-appender:1.6.1")
# logback-dev.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
<logger name="org.hibernate.SQL_SLOW" level="WARN"/>
<springProperty name="SLACK_WEBHOOK_URL" source="slack.webhook.url"/>
<appender name="SLACK" class="com.github.maricn.logback.SlackAppender">
<webhookUri>${SLACK_WEBHOOK_URL}</webhookUri>
<channel>alert-test</channel>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%date %-5level - %msg%n</pattern>
</layout>
<username>Dev-Logger</username>
<iconEmoji>:large_blue_circle:</iconEmoji>
<colorCoding>true</colorCoding>
</appender>
<appender name="ASYNC_SLACK" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="SLACK" />
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>WARN</level>
</filter>
</appender>
<root>
<level value="INFO" />
<appender-ref ref="ASYNC_SLACK" />
<appender-ref ref="CONSOLE" />
</root>
</configuration>
로그레벨이 WARN일 때만 슬랙 메시지를 보내도록 설정했다.
웹훅URL을 설정파일에서 읽어와서 등록하고, 여기서는 채널과 이모지, 봇 이름등을 설정한다.
logback-live.xml은 운영환경 로그인데, dev와 동일하되 채널명만 다르게 설정하면 된다.
서버에서 logger.warn(), logger.error()로 로깅하면 자동으로 슬랙 메시지가 전송된다.
반응형