일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- UNPROTECTED PRIVATE KEY FILE
- Git 브랜치
- Linux oh my zsh
- Logback
- linux background
- git switch
- EC2 oh my zsh
- git branch
- Linux apt-get
- Linux apt
- Linux 디렉터리 구조
- ec2 ssh unprotected private key file
- 아비트럼 새폴리아 이더 받는법
- git 기본 에디터
- Navigation Pattern
- AWS EC2 서버 만들기
- HTTP Web Server
- arbitrum sepolia eth
- ssl 인증서 발급받기
- git 계정 설정
- linux foreground
- GIT
- Linux 디렉터리 역할
- EC2 zsh
- javascript scope
- EC2 Apache2
- 서버의 서비스 방식
- nginx https 설정
- javascript 정렬
- EC2 HTTP 호스팅
Archives
- Today
- Total
HyunJun 기술 블로그
스프링 프레임워크 Logback Slcak Log 자동화하기 본문
728x90
1. Logback이란?
기존에 log 관리로 사용되던 log4j의 후속 버전이며, log4j를 설계한 Ceki Gulgu에 의해 설계되었습니다.
- XML로 logging 설정
- 별도의 삭제 스케줄러 설정 및 개발 필요 없이, maxHistory 설정값을 이용해 일정 기간이 지나면 로그파일 자동 삭제가 가능
- Filter 기능: 사용자별 level 조정 가능
- 로그 레벨 변경 시 내부를 스캐닝 하는 별도의 스레드가 있어 서버 재기동을 할 필요성 없음.
2. Slcak 설정하기
구현에 앞서 Slack에서의 채널부터 만들어 볼까요?
URL을 복사해서 메모장에 저장해 주세요.
더 내려서 설정 저장 클릭
3. Spring Log 설정하기
build.gradle
// Slf4j
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
// Slack
implementation 'com.github.maricn:logback-slack-appender:1.4.0'
application.yml
logging:
slack:
webhook-uri: https://hooks.slack.com/services/발급받은webhook-uri
config: classpath:logback-spring.xml
resources 디렉터리 아래에 logback-spring.xml 파일 생성
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<springProperty name="SLACK_WEBHOOK_URI" source="logging.slack.webhook-uri"/>
<appender name="SLACK" class="com.github.maricn.logback.SlackAppender">
<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>
<username>Spring-Server-log</username>
<iconEmoji>:interrobang:</iconEmoji>
<colorCoding>true</colorCoding>
</appender>
<!-- Consol appender 설정 -->
<appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<Pattern>%d %-5level %logger{35} - %msg%n</Pattern>
</encoder>
</appender>
<appender name="ASYNC_SLACK" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="SLACK"/>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<!-- 슬랙에 전송할 로그 레벨 지정-->
<!-- <level>Info</level>-->
<level>Warn</level>
<!-- <level>ERROR</level>-->
</filter>
</appender>
<!-- 콘솔에서 보여질 로그 레벨 지정-->
<root level="INFO">
<appender-ref ref="Console" />
<appender-ref ref="ASYNC_SLACK"/>
</root>
</configuration>
<iconEmoji>:interrobang:</iconEmoji>에 이모지를 등록할 수 있으며, 슬랙의 메시지 입력창에서 이모티콘을 선택한 후, Ctrl + C(Command + c)로 복사를 하고, xml 창에서 붙여 넣기 하면 문자열로 된 값으로 사용할 수 있습니다.
4. 확인하기
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@RestController
public class TestController {
private final Logger logger = LoggerFactory.getLogger("Logger");
@GetMapping("/log")
public void logTest() {
logger.info("인포 로그");
logger.warn("워닝 로그");
logger.error("에러 로그");
}
}
728x90
Comments