일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- EC2 oh my zsh
- Navigation Pattern
- EC2 HTTP 호스팅
- Linux 디렉터리 구조
- Linux ls
- 서버의 서비스 방식
- HTTP Web Server
- linux foreground
- Linux cat
- 자바스크립트 런타임
- javascript scope
- Linux apt
- Linux rmdir
- AWS EC2 서버 만들기
- EC2 Apache2
- Linux 디렉터리 역할
- JavaScript EventLoop
- 자바스크립트 이벤트 루프
- Linux 디렉터리 명령어
- Linux oh my zsh
- Linux apt-get
- Linux 파일 관리 명령어
- Linux pwd
- EC2 zsh
- JavaScript 실행 디버깅
- Linux cd
- linux background
- Linux mkdir
- Logback
- javascript 정렬
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