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

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

1.mybatis-config.xml的设定

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

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

 

 

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

[java]  view plain  copy
 
  在CODE上查看代码片 派生到我的代码片
  1. <settings>  
  2.     <setting name="logImpl" value="STDOUT_LOGGING" />  
  3. </settings>  

 

2.原因是:

mybatis源代码BaseExceutor.Java

[java]  view plain  copy
 
  在CODE上查看代码片 派生到我的代码片
  1. protected Connection getConnection(Log statementLog) throws SQLException {  
  2.   Connection connection = transaction.getConnection();  
  3.   if (statementLog.isDebugEnabled()) {  
  4.     return ConnectionLogger.newInstance(connection, statementLog);  
  5.   } else {  
  6.     return connection;  
  7.   }  
  8. }  

 如果设定了

[java]  view plain  copy
 
  在CODE上查看代码片 派生到我的代码片
  1. STDOUT_LOGGING  

  实现类是StdOutImpl.java

[java]  view plain  copy
 
  在CODE上查看代码片 派生到我的代码片
  1. public boolean isDebugEnabled() {  
  2.   return true;  
  3. }  

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

 

3.logback.xml的设定

[java]  view plain  copy
 
  在CODE上查看代码片 派生到我的代码片
  1.    <logger name="org.apache.ibatis" level="DEBUG">  
  2.     <appender-ref ref="STDOUT"/>  
  3. </logger>  
  4.   
  5. <logger name="java.sql" level="debug">  
  6.     <appender-ref ref="STDOUT"/>  
  7. </logger>  

1.mybatis-config.xml的设定

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

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

 

 

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

[java]  view plain  copy
 
  在CODE上查看代码片 派生到我的代码片
  1. <settings>  
  2.     <setting name="logImpl" value="STDOUT_LOGGING" />  
  3. </settings>  

 

2.原因是:

mybatis源代码BaseExceutor.Java

[java]  view plain  copy
 
  在CODE上查看代码片 派生到我的代码片
  1. protected Connection getConnection(Log statementLog) throws SQLException {  
  2.   Connection connection = transaction.getConnection();  
  3.   if (statementLog.isDebugEnabled()) {  
  4.     return ConnectionLogger.newInstance(connection, statementLog);  
  5.   } else {  
  6.     return connection;  
  7.   }  
  8. }  

 如果设定了

[java]  view plain  copy
 
  在CODE上查看代码片 派生到我的代码片
  1. STDOUT_LOGGING  

  实现类是StdOutImpl.java

[java]  view plain  copy
 
  在CODE上查看代码片 派生到我的代码片
  1. public boolean isDebugEnabled() {  
  2.   return true;  
  3. }  

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

 

3.logback.xml的设定

[java]  view plain  copy
 
  在CODE上查看代码片 派生到我的代码片
  1.    <logger name="org.apache.ibatis" level="DEBUG">  
  2.     <appender-ref ref="STDOUT"/>  
  3. </logger>  
  4.   
  5. <logger name="java.sql" level="debug">  
  6.     <appender-ref ref="STDOUT"/>  
  7. </logger>  

猜你喜欢

转载自sunbin.iteye.com/blog/2374543
今日推荐