Slf4j(Simple Logging Facade For Java)
java.util.logging, logback 및 log4j와 같은 다양한 로깅 프레임 워크에 대한 추상화(인터페이스) 역할을 하는 라이브러리 입니다.
인터페이스를 사용하여 로깅을 사용하기 때문에 추후에 로깅 라이브러리를 변경하더라도 코드를 변경하지 않아도 됩니다. 추상화 로깅 라이브러리이기 때문에 단독으로는 사용할 수 업습니다. 배포 시에 개발자가 로깅 프레임워크를 선택해서 연결해줘야 사용할 수 있습니다.
Facade Pattern
f에 해당하는 Facade 가 무슨 뜻인지 궁금했습니다.
퍼사드 패턴은 객체 지향 프로그래밍에서 자주 사용되는 소프트웨어 디자인 패턴입니다. facade는 내부적으로 혹은 구조적으로 더 복잡한 코드를 가려주는 상위 수준의 인터페이스의 역할을 하는 객체라고 합니다. 퍼사드 패턴의 핵심은 내부 시스템의 복잡도를 감추고 상호작용할 더 단순한 메소드를 제공하는 것이라고 합니다.
퍼사드 패턴은 다음과 같은 장점이 있습니다.
- 라이브러리를 사용하는 코드들을 좀 더 읽기 쉽게 해준다.
- 라이브러리 바깥쪽의 코드가 라이브러리의 안쪽 코드에 의존하는 일을 감소시켜준다.
로그 레벨
Slf4j를 사용하면 패키지 별로 어느 수준까지 로그를 작성할지 설정할 수 있습니다.
왼쪽부터 위험한 수준입니다. Error > Warn > Info > Debug > Trace
Error: 예상치 못한 심각한 문제일 경우. 즉시 조치가 필요한 레벨
Warn: 에러는 아니고, 당장의 서비스 운영에는 영향이 없으나 주의가 필요
Info: 운영에 참고할만한 사항.
Debug: 개발 단계에서 사용.
Trace: 개발 단계에서 경로 추적을 위해 사용.
application.yml 설정
logging:
file:
name: ./log/test.log # 로깅 파일 위치
max-history: 7 # 로그 파일 삭제 주기(7일)
max-size: 5MB # 로그 파일 하나의 최대 크기
level: # 각 패키지 별 로깅 레벨
jparest.practice.group : error
jparest.practice.group.controller : debug
참고자료
[Logging] SLF4J란?
Spring boot logging - @Slf4j 어노테이션 사용법 - 삽질중인 개발자
SLF4J 이해하기 1탄 - Facade Pattern