Java/Logging 2

Logging > Logback > MyBatis

MyBatis를 사용할 때 기본적으로 SQL 쿼리 로그에 출력되는 클래스명은 어떻게 될까? DAO나 Mapper의 클래스명이 출력될까? 아니다. Mapper XML로 쿼리를 설정한 경우 XML에 설정한 Namespace의 값으로 출력된다 따라서 해당 Namespace의 값이 폴더 구조를 따르는 규칙적인 경우라면 Logger 설정이 쉬우나, 만약 규칙적이지 않다면 쉽지 않을 것이다. 예를 들어 아래와 같이 설정되어 있다면.. 이와 같이 mapper라는 이름으로 시작하는 Logger 설정이 가능할 것이다.. 하지만 아래와 같이 설정되어 있다면 Logger 설정이 거의 불가능할 것이다.... 이런 경우에는 log4jdbc-remix 같은 라이브러리를 사용하면 아래와 같은 Logger를 사용하여 설정 가능하다..

Java/Logging 2025.02.11

Logging > Logback > additivity

Logback은 계층적 로깅을 따름 Logger의 로깅은 상위 Logger에게 전파됨. 이는 중복 로깅이 될 수 있다는 말이다 예를 들어 아래와 같이 Root logger의 레벨은 INFO로 설정하고, MyBatis 관련 로깅은 DEBUG로 설정한다고 해보자  org.mybatis 패키지 하위에서 DEBUG 로그를 출력한 뒤 Root logger에도 전파되지만, INFO 레벨에 막혀 출력이 되지 않는다additivity의 기본값은 true이다 additivity의 값을 false로 설정하면 어떻게 될까?  false로 설정하면 org.mybatis의 로그는 더이상 출력되지 않는다이를 출력하기 위해서는 별도의 Appender를 설정해야 한다

Java/Logging 2025.02.11