본문 바로가기

Back-End/Spring

Spring Boot 2.0 - 스프링 부트 기본 로깅

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.filelogging.pathExampleDescription

(none)

(none)

 

Console only logging.

Specific file

(none)

my.log

특정 log 파일에 출력하고 싶은 경우. 이름은 정확한 경로나 현재 디렉토리에서 상대경로를 명시하면 된다.

(none)

Specific directory

/var/log

특정 디렉토리에 로그를  spring.log 에 출력한다. 이름은 정확한 경로나 현재 디렉토리에서 상대경로를 명시하면 된다.


다음 설정들은 실제 로깅 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