728x90
- 로그에 특정 레벨을 설정할 수 있다.
1. Trace
2. Debug
3. Info
4. Warn
5. Error
로깅을 하는 이유?
- 실운영과 테스트 상황에서 각각 다른 출력 레벨을 설정하여 로그를 확인 가능
- 출력 방식에 대해 설정가능
- 설정 파일을 일정 시간마다 스캔하여 어플리케이션 중단 없이 설정 변경 가능
- 별도의 프로그램없이 자체적으로 로그 압축 지원
- 로그 보관 기간 설정 가능
설정방법 ( xml 파일 )
- logback-spring.xml 파일 참조하는 것이 일반적
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
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 |
댓글