기본 Log 설정 및 Logback 설정
Spring Boot 는 내부로그는 Commons Logging 사용한다. Java Util Logging 、Log4J2 과 Logback 등 library 들을 자동옵션으로 두었다. 3가지 로그는 모두 IDE 툴 터미널에서 로그를 구체적으로 찍일수 있다. 오늘은 Logback 관련해서 알아보자

시간일자:ms 단위
로그레벨:ERROR, WARN, INFO, DEBUG or TRACE
프로세스 ID
구분자 :
---
로그시작점thread id:
Logger名:클래스 명으로 대체
로그내용.
로그실제 찍히는 것
2021-12-28 17:37:25.578 INFO 65136 --- [ main] com.didispace.chapter81.Application : Started Application in 2.695 seconds (JVM running for 3.957)
2021-12-28 17:37:25.579 ERROR 65136 --- [ main] com.didispace.chapter81.Application : Hello World
2021-12-28 17:37:25.579 WARN 65136 --- [ main] com.didispace.chapter81.Application : Hello World
2021-12-28 17:37:25.579 INFO 65136 --- [ main] com.didispace.chapter81.Application : Hello World
로그모드 변경 방법 2가지
$ java -jar myapp.jar --debug
application.properties 에서 debug=true 속성 추가

로그설정
컬러 설정
application.properties 에 spring.output.ansi.enabled 속성 추가
NEVER : ANSI-colored 사용안함.
DETECT : ANSI 여부를 판단하고 맞으면 color 로 로그출력
ALWAYS : 항상 ANSI-colored 모드로 출력 ,ANSI 지원하지 않을시 여러가지 "잡"정보가 나오므로 추천하지 않음.
로그파일 만들기
application.properties 에
logging.file.name=run.log #파일명
logging.file.path=./ #파일경로
로그파일 롤링
logging.logback.rollingpolicy.file-name-pattern: "/logs/abc.%d{yyyy-MM-dd}.%i" #파일 생성 규칙 패턴
logging.logback.rollingpolicy.clean-history-on-start: # 구동시 기존 로그 지우는가 ,기본 false 임.
logging.logback.rollingpolicy.max-history: 30 # 로그파일 유지 개수
logging.logback.rollingpolicy.max-file-size: # 파일별 사이즈 제한
logging.logback.rollingpolicy.total-size-cap: #
Log Level 컨틀롤
설정 포맷
logging.level.*=LEVEL
logging.level : * 은 패키지 명 혹은 Logger 명
LEVEL : TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF
예시
logging.level.com.didispace=DEBUG # com.blake 패키지하위 모든 class는 DEBUG 레벨사용
logging.level.root=WARN #root 관련은 로그는 WARN level 사용
커스텀 설정
일반적으로 ApplicationContext 생성서 Log 모듈이 초기화 된다. Spring 설정파일의 영향을 받지 않는다. 때문에 Springboot 외부에서 Log관련 설정을 자유롭게 할수 있다.
아래와 같은 이름을 springboot에서 사용하는데
Logback:
logback-spring.xml
,logback-spring.groovy
,logback.xml
,logback.groovy
Log4j2:
log4j2-spring.xml
,log4j2.xml
JDK (Java Util Logging):
logging.properties
SpringBoot 공식사이트에서 -spring 를 붙여서 사용하라고 권장한다.
logback.xml 아닌 logback-spring.xml 을 사용해야 된다.
추가로
application.properties 에 아래와 같은 속성 값도 설정가능하다.
logging.pattern.console:터미널에 찍힐 로그 양식 (JDK Logger 안됨.)
logging.pattern.file:파일에 쓰기위한 로그 양식(JDK Logger 안됨.)
끝!
Last updated