Backend/spring

spring logback

dddzr 2022. 6. 10. 21:45

Spring이나 일반 java 프로그램의 경우 logback.xml 파일을 resources 디렉터리에 만들어서 참조하지만 Spring Boot의 경우에는 아래 3가지 중 한 가지 방법을 선택합니다.

  • application.properties에 설정
  • resources/logback-spring.xml에 설정
  • resources/logback.xml에 설정
//logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <!--로그 파일 저장 위치-->
    <property name="LOGS_PATH" value="d:/logs/PROJECT_NAME"/>
     <!-- Console Appender -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <charset>UTF-8</charset>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] [%logger{36}:%line] - %msg%n</pattern>
        </encoder>
    </appender> 
    <!-- Rolling File Appender -->
    <appender name="DAILY_ROLLING_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 파일 경로 -->
        <file>${LOGS_PATH}/PROJECT_NAME.log</file>
        <!-- 출력패턴 -->
        <encoder>
            <charset>UTF-8</charset>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] [%logger{36}:%line] - %msg%n</pattern>
        </encoder>
        <!-- Rolling 정책 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- .gz,.zip 등을 넣으면 자동으로 일자별 로그파일 압축 -->
            <fileNamePattern>${LOGS_PATH}/%d{yyyy,aux}/%d{MM,aux}/atum-studio_%d{yyyy-MM-dd-HH}.log.gz</fileNamePattern>
            <!-- 일자별 로그파일 최대 보관주기(일단위) 만약 해당 설정일 이상된 파일은 자동으로 제거-->
            <maxHistory>365</maxHistory>
        </rollingPolicy>
    </appender>
    
    <logger name="com.become.atum.webportal" level="DEBUG">
        <appender-ref ref="DAILY_ROLLING_FILE" />
    </logger>
   
    <root level="INFO">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="DAILY_ROLLING_FILE" />
    </root>
</configuration>

*이름 안겹쳐야 로그쌓임

 

SQL 로그

프로젝트에 로그백(Logback)을 적용하고,

XML Mapper에 선언된 SQL 쿼리 문이 실행되었을 때

해당 쿼리의 로그를 콘솔에 출력

 

https://congsong.tistory.com/23

 

스프링 부트(Spring Boot) - Logback을 사용하여 쿼리 로그 출력하기 [개발을 시작해봐요!]

이전 글에서는 컨트롤러에서 특정 페이지로 리다이렉트 하는 시점에 사용자에게 어떠한 상황에 알맞은 메시지를 화면(View)으로 전달하는 기능을 구현해 보았습니다. 이번 글에서는 프로젝트에

congsong.tistory.com