[java] 스프링 부트에서 로깅 설정하기

로깅은 애플리케이션 개발 및 운영에 있어 매우 중요한 요소입니다. 스프링 부트는 기본적으로 로깅에 대한 설정을 제공하며, 구성을 통해 로그 레벨 및 파일 출력 포맷을 조정할 수 있습니다.

기본 로깅 설정

첫째로, application.properties 또는 application.yml 파일을 사용하여 기본 로그 레벨을 설정할 수 있습니다.

logging.level.root=INFO
logging.level.org.springframework=DEBUG
logging.level.com.example=TRACE

또한 파일 출력 형식을 지정할 수도 있습니다.

logging.pattern.console=%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n
logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
logging.file.name=myapp.log

커스텀 로거 설정

커스텀 로거를 설정하여 추가적인 로깅 구성을 지원할 수 있습니다. 아래와 같이 @Configuration 어노테이션을 사용하여 로거를 설정할 수 있습니다.

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.context.annotation.Configuration;

@Configuration
public class LoggingConfig {

    private static final Log logger = LogFactory.getLog("com.example");

    // Additional logging configuration can be added here
}

로그 파일 백업

로깅 시스템에서 로그 파일이 너무 커지지 않도록 파일 백업이 필요할 수 있습니다. logback.xml 파일에 아래와 같은 설정을 추가하여 파일 백업을 수행할 수 있습니다.

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>myapp.%d{yyyy-MM-dd}.log</fileNamePattern>
        <maxHistory>30</maxHistory>
    </rollingPolicy>
    <encoder>
        <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg%n</pattern>
    </encoder>
</appender>

로깅은 실제 운영 환경에서 애플리케이션을 모니터링하고 문제를 해결하는 데에 큰 도움을 줍니다. 따라서 올바른 로깅 설정은 매우 중요합니다.

더 많은 정보는 스프링 부트 공식 홈페이지의 로깅 섹션에서 찾아볼 수 있습니다.