반응형
Spring Boot에서 로그(Log)를 설정하는 방법은 매우 유연하며, 기본적으로 SLF4J와 Logback을 사용합니다. Spring Boot의 로그 설정 방법을 단계별로 자세히 설명하겠습니다.
1. 기본 로그 설정
Spring Boot는 기본적으로 spring-boot-starter-logging 의존성을 포함하여 기본 로그 설정을 제공합니다.
기본 동작
- Spring Boot는 기본적으로 Logback을 사용합니다.
- 애플리케이션이 시작될 때 INFO 레벨 로그가 출력됩니다.
- 출력 대상은 콘솔이며, application.properties나 application.yml로 설정을 커스터마이징할 수 있습니다.
2. 로그 레벨 설정
application.properties 파일로 설정
# 기본 로깅 레벨 (DEBUG, INFO, WARN, ERROR, TRACE, OFF)
logging.level.root=INFO
# 특정 패키지나 클래스의 로깅 레벨
logging.level.org.springframework.web=DEBUG
logging.level.com.example.myapp=TRACE
application.yml 파일로 설정
logging:
level:
root: INFO
org.springframework.web: DEBUG
com.example.myapp: TRACE
로그 레벨 설명
- TRACE: 가장 세부적인 정보로 디버깅에 유용합니다.
- DEBUG: 디버깅 정보입니다.
- INFO: 일반적인 정보를 나타냅니다.
- WARN: 경고 메시지를 나타냅니다.
- ERROR: 오류 메시지를 나타냅니다.
- OFF: 로그를 비활성화합니다.
3. 로그 출력 형식 설정
기본 로그 출력 형식
Spring Boot는 기본적으로 %d{yyyy-MM-dd HH:mm:ss} - %msg%n 형식으로 로그를 출력합니다.
커스터마이징
application.properties 파일로 설정
# 로그 출력 형식 설정
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
application.yml 파일로 설정
logging:
pattern:
console: "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"
file: "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"
4. 로그 파일 저장 설정
Spring Boot는 로그를 파일로 저장할 수도 있습니다.
로그 파일 설정 예제
application.properties
# 로그 파일 저장 경로와 이름
logging.file.name=logs/myapp.log
# 로그 파일 크기와 백업 설정
logging.file.max-size=10MB
logging.file.max-history=7
application.yml
logging:
file:
name: logs/myapp.log
max-size: 10MB
max-history: 7
5. Logback 설정
Spring Boot는 기본적으로 Logback을 사용하며, 커스터마이징하려면 logback-spring.xml 파일을 사용할 수 있습니다.
Logback 설정 파일 예제
logback-spring.xml
<configuration>
<!-- 콘솔 출력 -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- 파일 출력 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/myapp.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logs/myapp.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>7</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- 로그 레벨 설정 -->
<root level="INFO">
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</root>
</configuration>
Logback 파일 위치
- src/main/resources/logback-spring.xml
- Spring Boot는 logback-spring.xml을 우선적으로 사용합니다.
6. SLF4J를 사용한 로깅
Spring Boot는 SLF4J를 기본적으로 포함하고 있으며, 코드에서 사용 방법은 다음과 같습니다.
코드에서 로깅 사용 예제
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class MyApp {
private static final Logger logger = LoggerFactory.getLogger(MyApp.class);
public static void main(String[] args) {
logger.debug("Debug message");
logger.info("Info message");
logger.warn("Warning message");
logger.error("Error message");
}
}
7. 기타 유용한 설정
컬러 로그 활성화
Spring Boot는 기본적으로 컬러 로그를 지원합니다. 단, 이를 비활성화하려면 다음과 같이 설정합니다.
# 컬러 로그 비활성화
spring.output.ansi.enabled=never
외부 구성 파일 로드
로그 설정을 외부 파일로 관리할 수도 있습니다.
logging.config=classpath:my-logback-config.xml
결론
Spring Boot에서 로그 설정은 기본 application.properties 또는 application.yml로 간단하게 처리할 수 있으며, 필요에 따라 logback-spring.xml을 사용하여 더욱 세부적인 설정이 가능합니다. 위의 단계를 통해 로그를 효과적으로 관리하고 분석할 수 있습니다.
반응형
'개발 > 기타' 카테고리의 다른 글
파비콘(Favicon)의 정의와 역할, 활용 방법 (0) | 2025.01.13 |
---|---|
Window에서 Mac으로 Spring Project를 옮겼을때 에러 원인 및 해결방법 (0) | 2025.01.13 |
이클립스에 WebSphere 서버 추가하기 (0) | 2020.08.12 |
JSP에 오늘 날짜 또는 시간 표시 (0) | 2019.04.17 |
JSTL c:out 데이터 표시할때 태그 적용 (0) | 2019.03.04 |