기본 Log 설정 및 Logback 설정

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

  1. 시간일자:ms 단위

  2. 로그레벨:ERROR, WARN, INFO, DEBUG or TRACE

  3. 프로세스 ID

  4. 구분자 :--- 로그시작점

  5. thread id:

  6. Logger名:클래스 명으로 대체

  7. 로그내용.

로그실제 찍히는 것

로그모드 변경 방법 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 지원하지 않을시 여러가지 "잡"정보가 나오므로 추천하지 않음.

Spring Boot 1.x 기본 NEVER 이지만 2.x 버전 이후 DETECT 로 변경 됨. 때문에 위 로그 이미지는 기본으로 컬러가 출력 되었다. 요즘 다들 Spring Boot 2.x 를 사용하기때문에 별도로 컬러 설절은 하지 않아도 된다.

로그파일 만들기

application.properties 에

로그파일 롤링

Log Level 컨틀롤

설정 포맷

logging.level.*=LEVEL

  • logging.level : * 은 패키지 명 혹은 Logger 명

  • LEVEL : TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF

예시

커스텀 설정

일반적으로 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