Back-End/Spring
Spring Boot 2.0 - 스프링 부트 기본 로깅
taehyun_kim
2018. 7. 22. 21:44
Logging
Spring boot의 소스는 기본으로 Commons Logging을 사용한다. 그리고 우리가 개발한 스프링 프로젝트는 기본으로 Logback을 사용한다. 다른 로깅툴을 사용해도 slf4j api로 라우팅 해주는 것이 포함되어 있어 다른 로킹 툴을 사용할 수 있다. 즉, logging dependency를 신경쓰지 않아도 된다.
Log Format
2014-03-05 10:57:51.112 INFO 45469 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/7.0.52 2014-03-05 10:57:51.253 INFO 45469 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2014-03-05 10:57:51.253 INFO 45469 --- [ost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1358 ms 2014-03-05 10:57:51.698 INFO 45469 --- [ost-startStop-1] o.s.b.c.e.ServletRegistrationBean : Mapping servlet: 'dispatcherServlet' to [/] 2014-03-05 10:57:51.702 INFO 45469 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
Console output
디버그 모드를 활성화하면 내장된 컨테이너, Hibernate, Spring Boot의 더 많은 정보를 출력해준다.
java -jar test.jar --debug
Console에 색깔 입히기
spring.output.ansi.enabled = ALWAYS
File Output
로그를 파일에 출력하고
logging.file | logging.path | Example | Description |
---|---|---|---|
(none) | (none) | Console only logging. | |
Specific file | (none) |
| 특정 log 파일에 출력하고 싶은 경우. 이름은 정확한 경로나 현재 디렉토리에서 상대경로를 명시하면 된다. |
(none) | Specific directory |
| 특정 디렉토리에 로그를 |
다음 설정들은 실제 로깅 infrastrcture랑 독립적이다. 즉, 특정 설정 키들은 ( logback.configurationFile ) spring Boot에서 관리되는 것이 아니다. 사용하고 있는 로깅에 대한 설정을 하고 싶은경우 resource에 설정 파일을 만들고, 사용하고 있는 로깅이 이 환경설정을 읽어오도록 해야 한다.
Log levels
logging.level.<logger-name>=<level>과 같은 형식을 사용하면 된다 . 로그 레벨에는 TRACE, DEBUG, INFO, WARN, ERROR, FATAL, or OFF 가 있다.
logging.level.root=WARN logging.level.org.springframework.web=DEBUG logging.level.org.hibernate=ERROR