【发布时间】:2016-07-22 16:33:43
【问题描述】:
我已将 org.apache.ibatis.logging.jdbc.BaseJdbcLogger 记录器添加到 logback.xml 以从 jdbc 记录 sql 和结果集。
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>[%d{yyyy-MM-dd HH:mm:ss}] [%t] [%-5p] </pattern>
</encoder>
</appender>
<logger name="com.business.logic" level="INFO"/>
<logger name="org.apache.ibatis.logging.jdbc.BaseJdbcLogger" level="DEBUG" />
<logger name="org.springframework.http.client.support" level="DEBUG" />
<logger name="org.springframework.web.client" level="DEBUG" />
<root level="WARN">
<appender-ref ref="asyncAppender" />
<appender-ref ref="console" />
</root>
在我看来,这会将 sql 和结果集记录到控制台,但事实并非如此。为了解决这个问题,我对每个记录器的日志级别进行了不同的更改,我发现只有当 com.business.log 的级别为 DEBUG
<logger name="com.business.logic" level="DEBUG"/>
<logger name="org.apache.ibatis.logging.jdbc.BaseJdbcLogger" level="DEBUG" />
<logger name="org.springframework.http.client.support" level="DEBUG" />
<logger name="org.springframework.web.client" level="DEBUG" />
我不知道为什么业务逻辑记录器的级别会影响 apache BaseJdbcLogger 记录器,尽管它们的设置不同。
如果我使用 mybatis-generator,但我没有,我可以假设这种情况。因为来自generator的mybatis访问代码会定位在com.business.logic的子包上,所以它遵循com.business.logic logger的设置。不过我现在不用mybatis-generator。
这里是我的问题:
BaseJdbcLogger 不使用我当前的日志设置进行记录的原因是什么?
如果我需要将com.business.logic的级别改成DEBUG才能让BaseJdbcLogger正常工作,mybatis或者slf4j的什么点可以做到呢?
【问题讨论】:
标签: logging jdbc slf4j mybatis