Springboot2 + log4j2 + slackappender

Kevin Park
3 min readMar 13, 2020

springboot2 의 logging 라이브러리를 log4j2로 변경하고 log를 slack으로 보내는 예제 입니다.

spring은 기본 logging으로 logback을 사용하고 있습니다. log4j2는 예전 log4j의 단점을 보완하고 logback의 장점을 더욱 발전시켜 나온 것으로 알고 있습니다.

Logging Library Performance Comparison

출처 : https://logging.apache.org/log4j/2.x/images/async-throughput-comparison.png

그래서 프로젝트의 logging 라이브러리를 log4j2로 변경하기로 했습니다.

1. 먼저 gradle 설정을 변경해야 합니다. 기존 spring-boot-starter-logging 라이브러리를 제외 시키고 spring-boot-starter-log4j2를 추가 합니다.

2. 프로퍼티에 log 설정파일의 위치를 설정값으로 입력합니다. 기본 위치에 등록하여 자동으로 처리하여도 되지만 profile 별로 설정을 하려면 logging.config 를 설정해주어야 합니다.

logging:
config: classpath:log4j2/log4j2-${spring.profiles.active}.xml

3. 기존에 개발 서버에는 logback slack appender를 통해 warn level 이상의 log를 slack에서 바로 확인 할 수 있도록 하고 있었습니다. 그래서 다른 오픈소스를 참고하여 deprecated 된 것과 불필요한 것들의 제거하고 log4j2 용 appender를 만들었습니다.

관련 소스는 github : https://github.com/underbell/springboot-log4j2-slack에서 확인 하 실 수 있습니다.

감사합니다.

Sign up to discover human stories that deepen your understanding of the world.

Kevin Park
Kevin Park

Responses (1)

Write a response