본문 바로가기
Spring/Spring-detail

Logback 설정 + 테스트

by YoonJong 2022. 9. 21.
728x90

- 로그에 특정 레벨을 설정할 수 있다. 

 1. Trace

 2. Debug

 3. Info

 4. Warn

 5. Error

 

로깅을 하는 이유?

- 실운영과 테스트 상황에서 각각 다른 출력 레벨을 설정하여 로그를 확인 가능

- 출력 방식에 대해 설정가능

- 설정 파일을 일정 시간마다 스캔하여 어플리케이션 중단 없이 설정 변경 가능 

- 별도의 프로그램없이 자체적으로 로그 압축 지원

- 로그 보관 기간 설정 가능

 


설정방법 ( xml 파일 )

 - logback-spring.xml 파일 참조하는 것이 일반적

https://www.youtube.com/watch?v=fkwb8coxBJM&list=PLlTylS8uB2fBOi6uzvMpojFrNe7sRmlzU&index=16

 

appender : Log의 형태 및 어디에 출력할지 설정하기 위한 영역

 - ConsoleAppender : 콘솔에 로그를 출력

 - FileAppender : 파일에 로그를 저장

 - RollingFileAppender : 여러 개의 파일을 순회하며 로그를 저장 - 로그의 레벨

 - SMTPAppender : 로그를 메일로 보냄

 - DBAppender : DB에 로그를 저장

 

encoder : 어떤 형태로 로그를 표현할 것인지 

root: 로그 레벨을 설정

- root 전역설정 / logger 지역설정

 

로그레벨  설명
ERROR 시스템적으로 심각한 문제
WARN 경고 레벨, 처리 가능한 사항
INFO 상태변경과 같은 정보성 메시지
DEBUG 디버깅을 위한 메시지 
TRACE 가장 디테일한 메시지

* 로그 레벨을 INFO 로 설정했을 경우 TRACE 와 DEBUG 레벨을 출력 X

 

 

logback-spring.xml  ( 위치는 resoureces 아래 )

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="30 seconds"> <!-- logback 구현체가 설정을 확인하는 주기 -->
    <property name="moduleId" value="springboot"/><!-- moduleId는 프로젝트가 설치된 폴더명 또는 구분할 수 있는 식별자이면 됨 -->
    <property name="type" value="springboot"/><!-- 로그파일명을 구성하는 인자 -->
    <property name="logback" value="logback"/><!-- log를 저장할 최종 디렉토리명 -->
    <property name="logdir" value="D:\Workspace\LogFiles"/>

    <!-- Appenders -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>DEBUG</level>
        </filter>
        <encoder>
            <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] [%thread] %logger{30} %msg%n</pattern>
        </encoder>
    </appender>
    <root level="INFO">
        <appender-ref ref="console" /> <!-- Appender의 name 과 같아야한다. -->
    </root>
</configuration>

 

테스트

출력결과

 


++파일로 저장하고 싶을 때는 xml 파일을 수정해야 한다.

<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>./application_log/application.log</file>
    <encoder>
        <pattern>%d{yyyyMMdd HH:mm:ss.SSS} [%thread] %-5level [%logger{0}:%line] - %msg %n</pattern>
    </encoder>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>application.log.%d{yyyy-MM-dd}.gz</fileNamePattern>
        <maxHistory>30</maxHistory>
        <totalSizeCap>5GB</totalSizeCap>
    </rollingPolicy>
</appender>

테스트 진행 시 결과

 

참고

https://frozenpond.tistory.com/88

 

logback 로그 설정하기(파일 저장)

이번 게시글에서는 logback 설정을 통해 파일로 로그를 저장하는 방법을 정리해보겠습니다. 기본적인 방식은 저번게시글과 동일합니다.(appender로 로그이벤트설정, root, logger에서 가져다 사용) sprin

frozenpond.tistory.com

 

728x90

'Spring > Spring-detail' 카테고리의 다른 글

HTTP 메서드 종류  (0) 2022.10.01
유효성 검사(Validation)  (1) 2022.09.21
테스트 코드의 개념에 대해 알아보자 (JUnit, TDD)  (0) 2022.09.15
ORM 이란 무엇일까?  (0) 2022.09.15
Lombok 알고 사용하자!  (0) 2022.09.15

댓글