Logging slf4j BaseJdbcLogger未记录

Logging slf4j BaseJdbcLogger未记录,logging,jdbc,slf4j,mybatis,Logging,Jdbc,Slf4j,Mybatis,我在logback.xml中添加了org.apache.ibatis.logging.jdbc.basejdbloggerlogger来记录来自jdbc的sql和结果集 <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>[%d{yyyy-MM-dd HH:mm:ss}] [%t] [%-5p] </pat

我在logback.xml中添加了org.apache.ibatis.logging.jdbc.basejdbloggerlogger来记录来自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>

[%d{yyyy-MM-dd HH:MM:ss}][%t][%-5p]
在我看来,这将把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中的mybatis访问代码将位于com.business.logic的子包中,所以它遵循com.business.logic logger的集合。但是我现在不使用mybatis生成器

以下是我的问题:

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

  • 如果我需要更改com.business.logic的级别以进行调试以使BaseJdbcLogger正常工作,mybatis或slf4j的作用是什么


  • 既然问题贴出来了,我就忍不住想了想。我自己找到了其中一个,我会在找到另一个后立即更新

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

    在我读了一篇关于Mybatis logging()的文章后,我意识到我误解了logger。 我以为带有basejdblogger的记录器将记录sql和结果集,因为它似乎basejdblogger.debug()打印sql日志

    [2016-07-25 15:52:48] [main] [DEBUG] o.a.i.l.j.BaseJdbcLogger.debug[139] ==>  Preparing: SELECT * FROM A.
    
    但我一次又一次地彻底阅读了Mybatis的日志文章, 我发现本文中的所有记录器示例的名称都是businesspackage而不是basejdblogger。我仍然不知道原因,但我知道我必须使用带有业务包名称的logger,而不是用于sql日志记录的BaseJdbcLogger