-
Spring - LogBack설정Spring 2025. 1. 8. 14:23반응형
1. Logback이란?
Logback은 Java 애플리케이션에서 널리 사용되는 로깅 프레임워크로, SLF4J(Simple Logging Facade for Java)를 통해 인터페이스로 활용되며, 성능과 유연성이 뛰어납니다. Spring Boot는 기본적으로 Logback을 내장하고 있어 별도 설정 없이도 사용할 수 있습니다.
2. 필수 설정: pom.xml
Spring Boot 애플리케이션에서 Logback을 사용하려면 기본적으로 Logback 의존성이 포함되어 있지만, 프로젝트에 따라 명시적으로 의존성을 추가해야 할 수도 있습니다.
Spring Boot 기본 Logback 의존성
Spring Boot Starter에 이미 Logback이 내장되어 있으므로 추가적인 설정은 필요하지 않습니다.
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency>
Logback Core 의존성
Logback의 세부적인 설정을 직접 제어하고 싶다면 아래 의존성을 추가합니다.
<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.11</version> <!-- 사용 중인 Spring Boot 버전에 따라 적합한 버전을 확인 --> </dependency>
3. Logback 설정 파일: logback.xml
Spring 애플리케이션에서는 logback.xml 파일을 사용하여 로그 설정을 구성합니다. 이 파일은 기본적으로 src/main/resources 디렉토리에 위치해야 하며, 실행 시 자동으로 로드됩니다.
기본 구조
<?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- 설정 디버깅 활성화 --> <configuration debug="true" /> <!-- 로그 파일 경로를 변수로 설정 --> <property name="LOG_PATH" value="D:/eGovFrameDev-4.2.0-64bit/workspace/example/logs" /> <!-- 콘솔 출력 --> <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> <!-- 로그 레벨 설정 --> <root level="INFO"> <appender-ref ref="CONSOLE" /> </root> </configuration>
4. Logback의 주요 설정 요소
(1) appender
appender는 로그를 출력할 위치를 정의합니다. Logback은 여러 종류의 appender를 제공합니다.
- ConsoleAppender: 콘솔에 로그 출력
- FileAppender: 파일에 로그 출력
- RollingFileAppender: 일정 기준에 따라 로그 파일을 순환 저장
(2) encoder
encoder는 로그 메시지를 출력할 형식을 정의합니다. %d, %thread, %level, %logger와 같은 변수 패턴을 사용합니다.
- %d{yyyy-MM-dd HH:mm:ss}: 로그 발생 시간
- %thread: 로그를 발생시킨 스레드 이름
- %level: 로그 레벨 (INFO, DEBUG, ERROR 등)
- %logger: 로거 이름
- %msg: 로그 메시지
5. Logback의 장점
- 성능: 기존 Log4j보다 빠르고 가볍습니다.
- 유연한 설정: 패키지별, 레벨별 로그 관리 가능.
- 다양한 Appender 지원: 파일, 콘솔, 데이터베이스 등.
- Spring Boot와의 강력한 통합: 기본 로깅 프레임워크로 지원.
반응형'Spring' 카테고리의 다른 글
[Spring] - formBackingObject()와 @ModelAttribute (1) 2025.01.20 Spring - logback 패키지별 분리하여 설정하기 (0) 2025.01.08 Spring - 스프링 서버 실행 흐름 및 설정 파일/어노테이션 실행 시점 (0) 2024.12.23 Spring MVC - <mvc:interceptors> 사용법 및 설명 (0) 2024.12.12 Vo 와 Dao 차이점 파헤치기 (0) 2024.12.03