最近在学习mybatis打印日志的功能,发现里面有很多问题需要解决。
首先,关于打印日志需要哪些jar的问题,一般而言需要三个,然后这三个的版本有影响吗
<!-- log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.7</version>
</dependency>
测试后,发现修改第二个jar包的版本为1.7.5或1.7.7,都没有关系。
第二,log4j.properties配置文件的问题,它放在classpath下就行,一般在maven项目中放到resource下面
# Global logging configuration
log4j.rootLogger=ERROR, stdout,D
# print log level higher than debug to the file E://logs/error.log ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = E://logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
# MyBatis logging configuration...
log4j.logger.com.mybatis.dao.UserMapper=TRACE
# 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
上述配置只是打印了UserMapper类的所有操作涉及到的日志问题,也就是mybatis的日志。
打印结果如下:
DEBUG [main] - ==> Preparing: delete from user where id = ?
DEBUG [main] - ==> Parameters: 1(Integer)
DEBUG [main] - <== Updates: 0
注意一般是跟踪某个包下面的类的行为,如果是在Service层,一般采用自定义日志打印的行为。
打印mybatis日志的maven项目下载地址:http://download.csdn.net/detail/u010627840/9377576