引入
在全局配置中,我们可以开启MyBatis的日志功能,前面我们也看到,MyBatis的依赖包有很多是日志包,其中就包含log4j。
导入log4j配置文件
放在src目录下,不可更改路径。
配置文件名为:log4j.properties 不可更改文件名
log4j.rootCategory=ERROR, CONSOLE,LOGFILE log4j.logger.cn.xiaohei.PeopleMapper.selAll = DEBUG log4j.logger.cn.xiaohei.PeopleMapper = DEBUG log4j.logger.cn.xiaohei = DEBUG log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=-%p-%d{yyyy/MM/dd HH:mm:ss,SSS}-%l-%L-%m%n log4j.appender.LOGFILE=org.apache.log4j.FileAppender log4j.appender.LOGFILE.File=D:/axis.log log4j.appender.LOGFILE.Append=true log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout log4j.appender.LOGFILE.layout.ConversionPattern=-%p-%d{yyyy/MM/dd HH:mm:ss,SSS}-%l-%L-%m%n
配置xml文件
在项目中MyBatis的全局配置xml文件中,添加如下:
其中,name值与value值有严格规定,具体参考MyBatis的api中的configuration xml一节,如图。
<settings> <setting name="logImpl" value="log4j"/> </settings>
值得注意的是:DTD文档是对格式有严格要求的,在MyBatis.xml中,Configuration标签下的标签必须按如下规则和顺序来写:
问号表示0次或1次。
如果出现+ * 等,均按正则表达式中的理解。
调用
以上配置完成后,无需手动调用对象进行日志记录,MyBatis会自动按照配置来进行日志记录。
某次记录展示如下:
-DEBUG-2020/03/04 15:52:43,534-org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:159)-159-==> Preparing: select * from people;
-DEBUG-2020/03/04 15:52:43,567-org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:159)-159-==> Parameters:
-DEBUG-2020/03/04 15:52:43,593-org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:159)-159-<== Total: 1
log4j.peoperties配置文件详解
此配置文件中,第1行为全局配置,ERORR表示日志执行的最低级别,级别相关概念请跳转 这里
第3-5行为自定义路径的级别
第3行:方法级,它详细到Mapper下的某个方法,只有这个方法被执行,在它对应的级别(此文件中为debug级别)及以上级别中触发日志行为。
第4行:类级,该类下面的全部方法对指定的级别(此文件中为debug级别)及以上级别触发日志行为。
第5行:包级,该包下面所有类对指定的级别(此文件中为debug级别)及以上的级别触发日志行为。
注:前面的 log4j.logger 为固定写法