본문 바로가기
▶ Back-End/Java

로그파일 생성과 관리(logback-spring.xml)

by 오늘도 코딩 2023. 10. 17.
728x90
반응형

로그파일을 생성하고 관리를 위한 반복 정책을 설정하는 방법

*자세한 설명 생략

 

 

▷ logback-spring.xml

*Cassandra 관련 부분은 무시(다양한 로그를 한 파일에 담을 수 있다.)

 

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 로그 메세지 설정 값 -->
    <!-- 로그 레벨 색상 설정 : %highlight -->
    <property name="LOG_MSG_PATTERN" value="%highlight(%d{yyyy-MM-dd HH:mm:ss} [%-5level] : %msg %n)" />
    <!-- /로그 메세지 설정 값 -->

    <!-- 로그 파일 설정 값 -->
    <property name="LOG_PATH" value="./logs" />
    <property name="LOG_FILE_NAME" value="bhs_log" />
    <property name="LOG_FILE_MSG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss} [%-5level] : %msg %n" />
    <!-- /로그 파일 설정 값 -->
    
    <!-- 로그 설정 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${LOG_MSG_PATTERN}</pattern>
        </encoder>
    </appender>
    <!-- /로그 설정 -->

    <!-- Cassandra 로그 설정 -->
    <appender name="CONSOLE_CQL" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%green(%d{yyyy-MM-dd HH:mm:ss} [%-5level] : %msg %n)</pattern>
        </encoder>
    </appender>
    <!-- /Cassandra 로그 설정 -->

    <!-- 로그 파일 생성 -->
    <appender name="LOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 출력패턴 설정-->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${LOG_FILE_MSG_PATTERN}</pattern>
        </encoder>
        <!-- 파일 관리 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 파일명 -->
            <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>100MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!-- 보관주기 -->
            <maxHistory>7</maxHistory>
        </rollingPolicy>
    </appender>
    <!-- /로그 파일 생성 -->

    <!-- Cassandra 로그 설정 적용 -->
    <logger name="org.springframework.data.cassandra.core.cql.CqlTemplate" additivity="false" level="DEBUG">
        <appender-ref ref="CONSOLE_CQL" />
        <appender-ref ref="LOG_FILE" />
    </logger>
    <!-- /Cassandra 로그 설정 적용 -->

    <!-- 전역 설정 적용 -->
    <root level="INFO">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="LOG_FILE" />
    </root>
    <!-- /전역 설정 적용 -->
</configuration>

 

 

▷ 관련 글

 

SLF4J 기본 사용 방법

spring-boot-starter 에는 SLF4J와 Logback이 기본으로 설정 돼있다. *자세한 설명 생략 ▷ SLF4J란? - Simple Logging Facade 4 Java - 다양한 Logging Framework를 하나의 방식으로 사용할 수 있는 방법을 제공 *Logging Frame

coding-today.tistory.com

 

728x90
728x90

'▶ Back-End > Java' 카테고리의 다른 글

Swagger3 JWT 인증 설정  (0) 2023.10.18
Swagger 연동 및 설정 방법  (2) 2023.10.18
요청 필드 값 공통 체크  (0) 2023.10.12
VERIFY JWT(nimbus)  (0) 2023.10.12
Create JWT(nimbus)  (0) 2023.10.12

댓글