-
Notifications
You must be signed in to change notification settings - Fork 1
Spring Boot 로그 설정 (Logback)
hyejung kim edited this page Sep 19, 2021
·
1 revision
운영중인 앱에서 문제가 발생했을 때 문제의 원인을 파악하기 위해선 정보가 필요.
이를 위해 Exception이 발생했거나 중요 기능이 실행되는 부분에 적절한 로그를 남겨 이후에 확인 가능하도록 해야 함
이런 로그를 생성해주는게 Logging
정보를 제공하는 일련의 기록인 로그(Log)를 생성하도록 시스템을 작성하는 활동
로그를 출력할 때 System.out.println()를 이용하면 가장 쉽게 출력할 수 있긴 하지만, 양이나 수준(Level)을 조절할 수 없고, 파일에 저장하기 불편한 단점이 존재.
성능면에서도 좋지 않음. 자주 사용 시 앱의 속도가 느려짐! 그래서 실제 로깅 시 따로 라이브러리를 이용하는데 다양함!
- Java에서 Log를 기록하기 위한 Open-Source Framework. (SLF4J의 구현체)
SLF4J?
다양한 logging과 관련된 라이브러리들을 하나의 통일된 방식으로 사용할 수 있는 방법을 제공
로깅 Facade, 로깅에 대한 추상 레이어를 제공하며 interface의 모음!
- **Spring Boot 에서는 default로 설정되어 있어서 별도로 라이브러리를 추가하지 않아도 됨!!!!!!
-
spring-boot-start-web
안에spring-boot-starter-logging
에 구현체가 존재함 - logback을 이용하여 logging하기 위해서 필요한 주요 설정 요소는
Logger
,Appender
,Encoder
가 있음
- application.properties에 설정
- resources/logback-spring.xml에 설정
- resources/logback.xml에 설정
Spring boot에서는 간단하게 1의 방법으로 log 설정이 가능하지만, 상세한 설정을 위해선 xml에 따로 해주는게 좋음.
xml은 복잡하기 때문에, 파일 경로나 파일명 등은 수정하기 쉽도록 별도의 properties파일로 분리해두기도 함.
log.config.path=c:/logs/~
log.config.filename=text.log
출력 레벨의 설정에 따라 설정 레벨 이상의 로그 표시
TRACE < DEBUG < INFO < WARN < ERROR
ex. Level을 INFO로 할 경우, INFO, WARN, ERROR를 보여줌
-
TRACE
: 요청을 처리하는 중 오류가 발생한 경우 표시 -
DEBUG
: 프로그램을 디버깅하기 위한 정보 표시 -
INFO
: 상태 변경과 같은 정보성 로그 표시 -
WARN
: 처리 가능한 문제, 향후 시스템 에러의 원인이 될 수 있는 경고성 메세지 표시 -
ERROR
: 요청 처리 중 오류가 발생한 경우 표시
- RDBMS의 트랜잭션과 병행제어
- Spring/Spring Boot/Spring MVC
- Spring의 Transaction
- 동시성 문제
- Redis 란?
- Spring Boot 로그설정(logback)
- 빠르게 실패 vs 안전하게 실패
- 테스트 코드 작성 시 유의사항
- Unit Test에서 AssertThat을 사용
- Java Optional 바르게 쓰기
- java.util.Optional T 클래스
- @Validation 어노테이션
- @RequestParam Date 타입 받기
- Spring Data JPA 쿼리메소드
- [JUnit5] 기본 테스트 어노테이션
- redis 설치 및 redisson을 이용한 분산락 구현