====== SpringBoot Logging ======
* [[https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html|26. Logging]]
* [[https://docs.spring.io/spring-boot/docs/current/reference/html/howto-logging.html|83. Logging]]
* [[http://www.baeldung.com/spring-boot-logging|Logging in Spring Boot | Baeldung]]
===== debug=true =====
* ''debug=true'' 설정은 다른 로깅 설정보다 우선해서 적용되어 로그를 debug모드로 찍게 한다.
* 운영 프로필에서는 사용하지 말 것.
===== 파일 명시적지정 =====
* ''logging.config=my-logback.xml'' 형태로 파일을 지정할 수 있다.
* 혹은 ''logback-spring.xml''로 파일을 만들면 그 안에서 프로필에 따라 설정을 할 수도 있다.
* Spring이 제어하기 힘든 ''logback.xml''은 사용하지 말거나 ''''를 include한다.
===== LOG_PATH_IS_UNDEFINED, .. =====
* ''logback-spring.xml'' + [[springframework:spring_cloud|Spring Cloud]] 사용시에, spring-cloud 버그로 인해서 ''logback-spring.xml''이 ''application properties''의 ''logging.*'' 설정보다 먼저 읽혀지면서 ''logging.path'' 값이 주입이 안되면 이런 오류가 발생한다.
* ''logback-spring.xml'' 을 사용하지 말고 별도의 파일(예: ''logback-myproject.xml'') 등으로 만들고,
* ''logger.config: classpath:logback-myproject.xml'' 형태로 application properties 에 설정해주면 설정의 읽는 순서가 명확해져서 일단은 해결된다.
logging:
path: /var/logs/application
config: classpath:logback-myproject.xml
* https://stackoverflow.com/a/48164468/1051402
* [[https://github.com/spring-cloud/spring-cloud-commons/issues/608|Rework PropertySourceBootstrapConfiguration to update the environment during environment post-processing and before ApplicationEnvironmentPreparedEvent is published · Issue #608 · spring-cloud/spring-cloud-commons]]
* [[https://github.com/spring-projects/spring-boot/issues/13077|LoggerContext changes when using Spring Cloud, eliminating Logback metrics · Issue #13077 · spring-projects/spring-boot]]
* [[https://github.com/micrometer-metrics/micrometer/issues/564|LoggerContext changes when using Spring Cloud · Issue #564 · micrometer-metrics/micrometer]]
*
===== JPA Hibernate/JDBCTemplate 로깅 =====
* [[http://www.baeldung.com/sql-logging-spring-boot|Show Hibernate/JPA SQL Statements in Spring Boot]] ''application.properties'' or yml 에서
# Hibernate
logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
#JDBCTemplate
logging.level.org.springframework.jdbc.core.JdbcTemplate=DEBUG
logging.level.org.springframework.jdbc.core.StatementCreatorUtils=TRACE
===== 참조 =====
* [[https://www.baeldung.com/spring-boot-logging|Logging in Spring Boot | Baeldung]]