[SpringBoot] 로깅 처리
1. SpringBoot Logging
스프링부트는 Commons Logging을 사용한다. Java Util Logging, Log4J, Log4J2 and Logback에 대한 기본설정을 제공한다.
2. 로그 출력형태
출력되는 내용은 다음과 같다. * 날짜와 시간: 밀리세컨드단위로 되어 정렬가능 * 로그레벨: ERROR
,WARN
, INFO
, DEBUG
or TRACE
* 프로세스ID * ---
: 를 통해서 실제 로그 메시지와 구분 * 스레드 네임 * 로거 네임: 로그가 찍히는 위치 * 로그 메시지
로그백Logback에서는 FATAL 레벨이 없다(ERROR 로 매핑됨) |
3. logback.xml 설정
스프링부트에서는 클래스패스classpath 상에서 루트에 logback.xml이 존재하면 해당설정파일을 로깅설정에 적용한다. 그래서 스프링부트에서는 logback-spring.xml
으로 설정하는 것을 권장한다. 이렇게 해두고 설정파일에서 logging.config: classpath:logback-spring.xml
과 같은 형태로 설정하면 로그설정을 추가등록한다.
스프링부트에서 생성하는 로그 설정은 대략 다음과 같다.
스프링 환경 | 시스템 속성 | 설명 |
---|---|---|
logging.exception-conversion-word | LOG_EXCEPTION_CONVERSION_WORD | 로깅 예외발생시 사용할 관례적인 단어 |
logging.file | LOG_FILE | 정의되어 있다면 기본로그 설정에 사용됨 |
logging.path | LOG_PATH | 정의되어 있다면 기본로그 설정에 사용됨 |
logging.pattern.console | CONSOLE_LOG_PATTERN | 콘솔에 출력되는 로그 패턴(stdout). (JDK 로거는 지원하지 않음) |
logging.pattern.file | FILE_LOG_PATTERN | 파일에 사용될 로그 패턴(LOG_FILE 활성화된 경우). (JDK 로거는 지원하지 않음) |
logging.pattern.level | LOG_LEVEL_PATTERN | 출력 로그레벨 형태 사용(기본%5p ). (logging.pattern.level 형태는 로그백에서만 지원) |
PID | PID | 현재 프로세스 ID(OS 환경 변수로 정의되지 않은 경우에는 발견) |
4. 로그백Logback 확장
스프링부트에서는 logback-spring.xml
을 설정하길 권장한다. logback.xml
로 설정하면 스프링부트가 설정하기 전에 로그백 관련한 설정을 하기 때문에 제어할 수가 없게 된다.
5. 스프링부트의 로그 설정을 유지하면서 로그백을 통해서 일일 로그파일 남기기
trueapplicatoin.%d{yyyy-MM-dd}.log30INFO%d{yyyy:MM:dd HH:mm:ss.SSS} %-5level --- [%thread] %logger{35} : %msg %n
위의 형태로 logback-spring.xml
을 만들어서 ${project}/src/main/resources
에 위치시키고 application.properties
혹은 application.yml
에 다음과 같이 설정한다.
애플리케이션 내 로그레벨 설정
6. 로그파일 실행
위의 형태로 실행하면, 실행한 위치에는 logback-spring.xml
설정에 의해 생성된 로그는application.2015-11-03.log
파일이 생성되고, application.yml
에 설정한 logging.*
관련한 로그는 logs/application.log
이 생성된다.
'Java > SpringBoot' 카테고리의 다른 글
[스프링부트] 1.3.0 - h2database의 h2console 사용하기 (0) | 2015.11.19 |
---|---|
[스프링부트] 1.3.0 출시 (0) | 2015.11.17 |
[SpringBoot] 1.3.0 - spring-boot-actuator-docs 추가 (0) | 2015.10.08 |
[SpringBoot] 스프링부트 시작하기 (0) | 2015.09.25 |
[SpringBoot] 스프링부트 참고문서(1.2.0.BUILD-SNAPSHOT) (아직도)번역중 (0) | 2015.09.10 |