【问题标题】:slf4j BaseJdbcLogger not loggingslf4j BaseJdbcLogger 不记录
【发布时间】: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。

这里是我的问题:

  1. BaseJdbcLogger 不使用我当前的日志设置进行记录的原因是什么?

  2. 如果我需要将com.business.logic的级别改成DEBUG才能让BaseJdbcLogger正常工作,mybatis或者slf4j的什么点可以做到呢?

【问题讨论】:

    标签: logging jdbc slf4j mybatis


    【解决方案1】:

    自从问题发布以来,我不禁思考它。我自己找到了其中一个,我会在找到另一个后立即更新。

    第一季度。 BaseJdbcLogger 不使用我当前的日志设置进行日志记录的原因是什么?

    看了一篇关于Mybatis logging(http://www.mybatis.org/mybatis-3/logging.html)的文章后,我意识到我误解了logger。 我认为带有 BaseJdbcLogger 的记录器会记录 sql 和结果集,因为它似乎 BaseJdbcLogger.debug() 打印 sql 日志!!!!

    [2016-07-25 15:52:48] [main] [DEBUG] o.a.i.l.j.BaseJdbcLogger.debug[139] ==>  Preparing: SELECT * FROM A.
    

    然而我一遍遍地阅读Mybatis的日志文章, 我发现文章中的所有记录器示例的名称都是 business package 而不是 BaseJdbcLogger。我仍然不知道原因,但我知道我必须使用 business package name 的 logger 而不是 BaseJdbcLogger 进行 sql 日志记录。

    【讨论】:

      猜你喜欢
      • 2012-10-08
      • 2021-10-27
      • 1970-01-01
      • 1970-01-01
      • 2018-07-10
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      相关资源
      最近更新 更多