[TIL] 20220720 캠프 95일차

C____JIN·2022년 7월 20일
1

TIL 1.0

목록 보기
51/78

2차 프로젝트

Spring Boot 로그 설정

  1. resources 폴더에 logback-spring.xml 파일 생성

  2. XML 파일 작성

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration scan="true" scanPeriod="30 seconds">
        <!--로그 파일 저장 위치-->
        <property name="LOGS_PATH" value="/home/ubuntu/app/cracker-log/"/>
        <appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
                <level>WARN</level>
            </filter>
    
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!-- rollover daily -->
                <fileNamePattern>${LOGS_PATH}log-%d{yyyy-MM-dd_HH_mm}.%i.txt</fileNamePattern>
                <timeBasedFileNamingAndTriggeringPolicy
                        class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                    <!-- or whenever the file size reaches 100MB -->
                    <maxFileSize>10MB</maxFileSize>
                </timeBasedFileNamingAndTriggeringPolicy>
                <maxHistory>30</maxHistory>
            </rollingPolicy>
    
            <encoder>
                <pattern>[%-5level] %d{HH:mm:ss.SSS} %logger{36} %M - %msg%n</pattern>
            </encoder>
    
        </appender>
        <root level="debug">
            <appender-ref ref="ROLLING"/>
        </root>
    </configuration>

로그 레벨 순서

TRACE  <  DEBUG  <  INFO  <  WARN  <  ERROR

1) ERROR : 요청을 처리하는 중 오류가 발생한 경우 표시한다.
2) WARN  : 처리 가능한 문제, 향후 시스템 에러의 원인이 될 수 있는 경고성 메시지를 나타낸다.
3) INFO  : 상태변경과 같은 정보성 로그를 표시한다.
4) DEBUG : 프로그램을 디버깅하기 위한 정보를 표시한다. 
5) TRACE : 추적 레벨은 Debug보다 훨씬 상세한 정보를 나타낸다.

logback-spring.xml 설정

  • 기본 특징
    • 대소문자 구별 x
    • name attribute를 반드시 지정
    • appender와 logger 크게 두개로 구분
    • Dynamic Reloading 기능
      • ex) 30초 주기마다 로그파일(logback-spring.xml)이 바뀌었는지 검사하고 바뀌었으면 프로그램 갱신
        <configuration scan="true" scanPeriod="30 seconds">

Reference

profile
개발 블로그🌐 개발일지💻

1개의 댓글

comment-user-thumbnail
2022년 7월 21일

적절한 로깅 레벨로 적절한 곳에 로그를 찍도록 코드를 작성해 놓으면 운영할때나 디버깅 할 때 도움이 많이 됩니다~

답글 달기