mybatis用logback日志不显示sql的解决方法

1.mybatis-config.xml的设定

关于logimpl的设定值还不支持logback,如果用SLF4J是不好用的。

这是官方文档的描述,见下图

 

 

设定改为STDOUT_LOGGING是可以显示sql的

	<settings>
		<setting name="logImpl" value="STDOUT_LOGGING" />
	</settings>

 

2.原因是:

mybatis源代码BaseExceutor.java

  protected Connection getConnection(Log statementLog) throws SQLException {
    Connection connection = transaction.getConnection();
    if (statementLog.isDebugEnabled()) {
      return ConnectionLogger.newInstance(connection, statementLog);
    } else {
      return connection;
    }
  }

 如果设定了

STDOUT_LOGGING

  实现类是StdOutImpl.java

  public boolean isDebugEnabled() {
    return true;
  }

 debug就开启了,log就可以打印sql了

 

3.logback.xml的设定

    <logger name="org.apache.ibatis" level="DEBUG">
		<appender-ref ref="STDOUT"/>
	</logger>
	
	<logger name="java.sql" level="debug">
	    <appender-ref ref="STDOUT"/>
	</logger> 
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐