로깅(Logging)이란?
Logback이란?
- 오픈소스 로깅 프레임워크이며 SLF4J의 구현체이자, 스프링부트에 기본으로 내장되어 있는 로깅 라이브러리
- log4j보다 좋은 성능을 가짐(log4j: 2015년에 지원 중단)
SLF4J
- 로깅 추상 레이어를 제공하는 인터페이스
- slf4j 덕분에 애플리케이션은 어떤 로깅 라이브러리를 사용하던 같은 방법으로 로그를 남길 수 있는 것
(그래서 로그 라이브러리를 교체하는 일이 발생하더라도 애플리케이션의 코드가 변경될 필요가 없음)
사용 방법
1. build.gradle
testImplementation group: 'ch.qos.logback', name: 'logback-classic', version: '1.4.7'
2. logback.properties
LOG_PATH=/Users/dbkim/Desktop/TASK/LOG
LOG_FILE=REQUEST_LOG
LOG_PATTERN=%d %p [%M] %m %n
3. logback-spring.xml
- logback.xml 말고 logback-spring.xml로 만들 경우 스프링부트의 설정 부분에서 제어가 가능해져 확장성이 커진다고 함
(-spring을 안붙일 경우 스프링 부트에 대한 설정 전에 logback이 설정된다고 함)
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property resource="logback.properties"/>
<appender name="request-log" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/${LOG_FILE}.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${LOG_PATTERN}</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/${LOG_FILE}.%d{yyyy-MM-dd}.log.%i</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>30</maxHistory>
</rollingPolicy>
</appender>
<root>
<level value="INFO" />
<appender-ref ref="request-log" />
</root>
</configuration>
참고사이트
모두의 코딩
Logback 사용하기 -1- - ssol_916.log