Spring Boot API
문제야 어디 있니~? LogBack
NEWDODORIPYO
2022. 8. 10. 17:45
코드를 실행시키고 테스트를 진행하고 하다 보면 간혹 이게 어디서.. 왜.... 나는 에러지...? 왜 실행이 안 되는 거지?? 하는 경우가 종종 생기는데 이럴 때 바로!! 사용해야 할 것이 로그이다 기존에는 Log4j2를 사용했었는데 최근 LogBack도 알게 되어 살짝궁 정리해본다
LogBack 이란??
Log4J를 기반으로 개발된 로깅(Logging)라이브러리
Log4j에 비해 약 10배 정도 빠른 퍼포먼스 , 메모리 효율성 증대
*출시 순서 : log4 j → logback →log4 j2
Logback 특징
- 로그에 특정 레벨을 설정할 수 있음 (Trace → Debug → Info → Warn → Error)
- Trace 가 가장 가벼운 로그 뒤로 갈수록 중요도가 높아짐
- 실 운영과 테스트 상황에서 각각 다른 출력 레벨을 설정하여 로그를 확인할 수 있음
- 왜 다른 레벨로 설정해야 하는가?
- 테스트에서는 좀 더 자세한 내용을 파악해서 내용을 수정해야 하기 때문에
- 보통 Debug 레벨로 설정해서 사용하는데 이러면 로그가 너무 많이 나와서 퍼포먼스가 떨어지는 경우가 있어 그래서 실 운영을 할 때는 info 나 warn 레벨로 운영하는 경우가 있음
- 왜 다른 레벨로 설정해야 하는가?
- 출력 방식에 대해 설정할 수 있음
- 콘솔에서 로그를 확인할지 , 파일로 저장을 할지 , 메일로 저장할지 , DB에 저장할지 등을 설정할 수 있다
- 설정 파일을 일정 시간마다 스캔하여 어플리케이션 중단 없이 설정 변경 가능
- 어플리케이션이 중단이 된다면 서비스가 먹통이 되는 현상이 있는데 Logback는 중단 없이 설정을 변경할 수 있다는 장점이 있다
- 별도의 프로그램 없이 자체적으로 로그 압축을 지원
- 로그 보관 기간 설정 가능
😎사용했던 코드 예시 )
application.yml 에 설정을 등록해주었다
logging:
config: classpath:logback-local.xml
logback-local.xml을 만들어 주고 코드를 작성
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
**<logger name="com.rami.rami" level="DEBUG"/>**
<**root level="INFO"**>
</root>
</configuration>
- root는 전역 설정이다
- logger 은 지역 설정