[Spring] Logging
Spring boot logback 설정
spring-boot-starter-web 안에 spring-boot-starter-logging 구현체가 있다.
classpath에 logback-spring.xml이 있으면, boot는 설정파일을 읽음.
logback-spring.xml이 없다면 yml파일 설정을 봄.
logback-spring.xml파일과 .yml파일이 동시에 있다면 .yml 설정 파일을 먼저 적용 후 xml파일이 적용되는 것을 확인함.
application.properties
logging.config=classpath:logging-config.xml
xml설정
<appender name="privateLogAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/private.${port:-default}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/private.${port:-default}.log.%d{yyyy-MM-dd}</fileNamePattern>
<maxHistory>7</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%replace(%msg){'\n', ' '}%n</pattern>
</encoder>
</appender>
yml 설정
spring:
profiles: default
jackson.serialization.FAIL_ON_EMPTY_BEANS: false
logging:
path: logs //이 값이 ${LOG_PATH}로 들어가게됨.
level.org.hibernate:
SQL: DEBUG
type.descriptor.sql.BasicBinder: TRACE
log 정보
- TRACE : 추적 레벨은 Debug보다 좀더 상세한 정보를 나타냅니다.
- DEBUG : 프로그램을 디버깅하기 위한 정보를 표시합니다. (운영서버에서는 표시하지 않도록 설정함)
- INFO : 상태변경과 같은 정보성 로그를 표시합니다.
- WARN : 처리 가능한 문제, 향후 시스템 에러의 원인이 될 수 있는 경고성 메시지를 나타냄
- ERROR : 요청을 처리하는 중 오류가 발생한 경우 표시합니다.
설정
ch.qos.logback.core.ConsoleAppender : 콘솔에 로그를 찍음
ch.qos.logback.core.FileAppender : 파일에 로그를 찍음
ch.qos.logback.core.rolling.RollingFileAppender : 여러개의 파일을 순회하면서 로그를 찍음
ch.qos.logback.classic.net.SMTPAppender : 로그를 메일에 찍어 보냄
참고 자료
https://romeoh.tistory.com/entry/Spring-Boot-Logback-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0
https://jeong-pro.tistory.com/154