BE/Spring

[Spring Boot] LogBack 설정

멍목 2022. 5. 11. 23:00
반응형

안녕하세요.

 

이번 포스팅에서는 LogBack 설정 방법에 대해서 적어보려고 합니다.

 


1. LogBack?

  • Java에서 가장 많이 사용되었던 로깅 라이브러리인 log4j의 후속 버전
  • Log4j를 더욱 성능을 좋게 만든 Java의 오픈 소스 Logging Framework
  • SpringBoot에 기본으로 설정 되어 있어 별도의 라이브러리를 추가하지 않아도 됨

 

2. 설정 방법

1) resources에 'logback-spring.xml' 파일을 생성한다.

 

 

2) 'logback-spring.xml' 파일에 로그 출력 설정을 하면 되는데, 필자는 아래와 같이 설정하였다.

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true">

    <!-- 로그 파일이 저장될 경로 -->
    <property name="LOG_PATH" value="/usr/sampleApp/logs"/>
    
    <!-- 로그 파일 이름 -->
    <property name="LOG_FILE_NAME" value="sampleLog"/>
    
    <!-- 로그 출력 패턴 -->
    <property name="LOG_PATTERN" value="%-5level %d{yy-MM-dd HH:mm:ss}[%thread] [%logger{0}:%line] - %msg%n"/>
    
    <!-- 로그 레벨 -->
    <!--
    	1) ERROR : 오류 메시지 표시 
        2) WARN  : 경고성 메시지 표시
        3) INFO  : 정보성 메시지 표시
        4) DEBUG : 디버깅하기 위한 메시지 표시
        5) TRACE :  Debug보다 훨씬 상세한 메시지 표시
        
        아래에서는 info로 설정하였는데, 이 경우엔 INFO 보다 위에 있는 DEBUG와 TRACE는 표시하지 않는다.
    -->
    <property name="LOG_LEVEL" value="info"/>

    <!-- CONSOLE에 로그 출력 세팅 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>
                [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} : %30logger{5} - %msg%n
            </Pattern>
        </layout>
    </appender>

    <!-- File에 로그 출력 세팅 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 파일 경로 설정 -->
        <file>${LOG_PATH}/${LOG_FILE_NAME}.log</file>

        <!-- 출력패턴 설정-->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${LOG_PATTERN}</pattern>
        </encoder>

        <!-- Rolling 정책 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- .gz,.zip 등을 넣으면 자동 일자별 로그파일 압축 -->
            <fileNamePattern>${LOG_PATH}/${LOG_FILE_NAME}.%d{yyyy-MM-dd}_%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- 파일당 최고 용량 kb, mb, gb -->
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!-- 일자별 로그파일 최대 보관주기(~일), 해당 설정일 이상된 파일은 자동으로 제거-->
            <maxHistory>30</maxHistory>
            <!--<MinIndex>1</MinIndex>
            <MaxIndex>10</MaxIndex>-->
        </rollingPolicy>
    </appender>

    <!-- 로그 전역 세팅 -->
    <root level="${LOG_LEVEL}">
        <!-- 위에 설정한 콘솔 설정 추가 -->
        <appender-ref ref="CONSOLE"/>

        <!-- 위에 설정한 파일 설정 추가 -->
        <appender-ref ref="FILE"/>
    </root>
</configuration>

 

 

아래의 블로그를 보고 참고하였으며, 아래의 블로그에 세세하게 설명이 잘 되어있으니 더욱 자세히 알고 싶다면 참고하는 것이 좋을 것이다.

https://goddaehee.tistory.com/206

 

[스프링부트 (5)] Spring Boot 로그 설정(1) - Logback

[스프링부트 (5)] Spring Boot Log 설정(1) - Logback 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ 스프링 부트 Log 설정 - 로그백] 입니다. : -) 1. Logback 이란? 특징?  - 자바 오픈소스 로깅 프레임..

goddaehee.tistory.com

 

반응형