SLF4J의 로그 레벨은 로깅 메시지의 중요도와 우선순위를 설정하기 위한 개념입니다. 개발자가 원하는 수준의 로그만 출력하도록 제어할 수 있습니다.
✅ SLF4J의 주요 로그 레벨
SLF4J는 일반적으로 다음과 같은 5가지 로그 레벨을 제공합니다. (중요도 순서로 나열)
레벨 | 의미 | 사용 예시 |
---|---|---|
TRACE |
가장 낮은 수준의 로그, 매우 상세한 디버깅 정보 | 메서드 진입, 데이터 흐름 추적 등 |
DEBUG |
디버깅을 위한 로그, 개발 중에 주로 사용 | 변수 값 출력, 로직 확인 등 |
INFO |
일반적인 정보 로그, 시스템의 진행 상태 출력 | 서버 시작, 주요 이벤트 발생 등 |
WARN |
경고 로그, 시스템에 잠재적 문제가 있을 경우 | 리소스 부족, 예상치 못한 상황 등 |
ERROR |
심각한 에러 로그, 애플리케이션 실행 중 치명적 오류 | 예외 발생, 요청 실패 등 |
✅ 로그 레벨의 중요도
- TRACE < DEBUG < INFO < WARN < ERROR
- 설정된 로그 레벨 이상의 로그만 출력됩니다.
예시
만약 로그 레벨이 INFO
로 설정되면:
INFO
,WARN
,ERROR
만 출력됩니다.TRACE
와DEBUG
는 출력되지 않습니다.
✅ SLF4J 로그 레벨 사용 예제
코드 예시:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Slf4jExample {
private static final Logger logger = LoggerFactory.getLogger(Slf4jExample.class);
public static void main(String[] args) {
logger.trace("TRACE: 상세한 추적 정보");
logger.debug("DEBUG: 디버깅 정보");
logger.info("INFO: 일반 정보");
logger.warn("WARN: 경고 메시지");
logger.error("ERROR: 오류 메시지");
}
}
✅ 로그 레벨 설정 방법
SLF4J는 자체적으로 설정 파일이 없고, 바인딩된 로깅 구현체에서 설정합니다. 예를 들어:
1. Logback 설정 (logback.xml):
<configuration>
<root level="info">
<appender-ref ref="console" />
</root>
</configuration>
- root level="info":
INFO
레벨 이상만 출력됩니다.
2. Log4j 설정 (log4j.properties):
log4j.rootLogger=INFO, console
log4j.logger.com.example=DEBUG
- 패키지 단위로 로그 레벨을 설정할 수도 있습니다.
✅ 로그 레벨의 활용
- TRACE: 개발 중 세부적인 로직 흐름을 추적할 때 사용 (프로덕션에서는 비활성화)
- DEBUG: 개발 및 테스트 단계에서 디버깅할 때 사용
- INFO: 정상 실행 상태의 이벤트를 기록
- WARN: 경고성 상황이 발생할 때, 시스템에 큰 문제는 없지만 주의가 필요
- ERROR: 치명적인 문제 발생 시 기록
핵심 요약
- SLF4J는
TRACE
,DEBUG
,INFO
,WARN
,ERROR
5가지 로그 레벨을 제공합니다. - 로그 레벨은 설정된 수준 이상만 출력되며, 개발 및 운영 환경에 따라 적절하게 조정합니다.
- TRACE와 DEBUG는 주로 개발 중에, INFO 이상은 프로덕션 환경에서 사용됩니다.
✅ 로그 레벨을 잘 활용하면 불필요한 로그 출력은 줄이고, 필요한 정보만 효과적으로 기록할 수 있습니다.
'Spring Boot' 카테고리의 다른 글
Thymeleaf (3) | 2024.10.31 |
---|---|
HikariCP (1) | 2024.10.22 |
Spring Data JPA (1) | 2024.10.22 |
spring.factories (2) | 2024.10.21 |
@Import (0) | 2024.10.21 |