Mybatis通過日志工廠提供日志信息,Mybatis內置的日志模版是log4j,commons.log,jdk log也可以通過slf4j簡單日志模版結合log4j使用日志信息輸出.具體選擇哪個日志實現由MyBatis的內置日志工廠確定。它會使用最先找到的(按上文列舉的順序查找)。 如果一個都未找到,日志功能就會被禁用。不少應用服務器的classpath中已經包含Commons Logging,如Tomcat和WebShpere, 所以MyBatis會把它作為具體的日志實現。
記住這點非常重要。這意味着,在諸如 WebSphere的環境中——WebSphere提供了Commons Logging的私有實現,你的Log4J配置將被忽略。
不過,如果你的應用部署在一個包含Commons Logging的環境, 而你又想用其他的日志框架,你可以做如下配置.
1. 配置日志輸出方式是log4j
<configuration> <settings> ... <setting name="logImpl" value="LOG4J"/> ... </settings> </configuration>
2.你也可以調用如下方法
org.apache.ibatis.logging.LogFactory.useSlf4jLogging(); org.apache.ibatis.logging.LogFactory.useLog4JLogging(); org.apache.ibatis.logging.LogFactory.useLog4J2Logging(); org.apache.ibatis.logging.LogFactory.useJdkLogging(); org.apache.ibatis.logging.LogFactory.useCommonsLogging(); org.apache.ibatis.logging.LogFactory.useStdOutLogging();
3.實現通過log4j對日志的記錄.我們需要導入基本的log4j.jar.
4.在log4j.properties中加入
# Global logging configuration log4j.rootLogger=ERROR, stdout # MyBatis logging configuration... log4j.logger.org.mybatis.example.BlogMapper=TRACE //這里就表示將對應的mapper結果記錄
Console output... log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
也可以對一組mapper記錄
log4j.logger.org.mybatis.example=TRACE
也可以是具體方法
log4j.logger.org.mybatis.example.BlogMapper.selectBlog=TRACE
某些查詢可能會返回大量的數據,只想記錄其執行的SQL語句該怎么辦?為此,Mybatis中SQL語 句的日志級別被設為DEBUG(JDK Logging中為FINE),結果日志的級別為TRACE(JDK Logging中為FINER)。所以,只要將日志級別調整為DEBUG即可達到目的:
log4j.logger.org.mybatis.example=DEBUG