MyBatis日志之Log4j示例——MyBatis学习笔记之十

MyBatis可选择的日志框架有SLF4J,ApacheCommonsLogging,Log4J和JDKlogging。本文将改造前面的例子,网站空间,用以演示Log4J的简单用法(源码下载地址:。此源码对应于以下内容的第五种情况)。

首先应把相关的Log4Jjar包复制到工程的lib目录下,本示例使用的是log4j-1.2.16.jar。

然后应创建log4j.properties文件,用以指定Log4J的行为,并放置到classpath中。在本示例中是将此文件放置在工程的src目录下,工程编译前会将此文件复制到classes目录中(详见工程的生成文件build.xml中的copy-resourcestarget,从23行开始。点此处下载示例源码),而classes目录会被ant加载到classpath中(详见build.xml的37-39行,关于Log4J的日志级别请参见:?uid-225738-action-viewspace-itemid-212359;配置请参见:):

执行的主程序如下:

由此可看出,程序的核心是调用TeacherMapper的getById方法。

1、若log4j.properties内容如下:

运行结果如下:

可看出,已按DEBUG级别打印出了com.abc.mapper包下的日志。

2、若把com.abc.mapper包的日志级别调整为INFO,即:

log4j.logger.com.abc.mapper=INFO

则执行结果如下:

INFO级别高于DEBUG级别,改为INFO则应该不再打印DEBUG级别的日志,但实际情况是DEBUG日志仍然和上例一样被打印了出来。可见,作为rootLogger的子logger,即使log4j.logger.com.abc.mapper定义的日志级别高于rootLogger,也无法生效。

3、现在把com.abc.mapper的日志级别修改为TRACE(级别低于DEBUG),即:

log4j.logger.com.abc.mapper=TRACE

运行结果如下:

由上图可见,TRACE级别的日志已被打印出来,TRACE设置已生效。

4、若log4j.logger.com.abc.mapper的日志级别仍为TRACE,作为其子logger,log4j.logger.com.abc.mapper.TeacherMapper的级别设置为DEBUG(高于TRACE),香港空间,即:

log4j.logger.com.abc.mapper.TeacherMapper=DEBUG

则运行结果如下:

可以看出,TRACE级别的日志已不再打印,作为子logger的log4j.logger.com.abc.mapper.TeacherMapper的日志级别DEBUG虽然高于log4j.logger.com.abc.mapper的日志级别,但也生效了。

5、若log4j.logger.com.abc.mapper的日志级别为DEBUG,作为其子logger,log4j.logger.com.abc.mapper.TeacherMapper的级别设置为TRACE(低于DEBUG),免备案空间,即:

log4j.logger.com.abc.mapper=DEBUG

log4j.logger.com.abc.mapper.TeacherMapper=TRACE

则运行结果如下:

可以看出,正如我们所猜想的,作为子logger的log4j.logger.com.abc.mapper.TeacherMapper,其TRACE级别的设置生效了。

结论:logger的级别若高于rootLogger的级别,则不生效,按rootLogger的级别算;在此前提下,各logger的级别按自己的设置生效。

【MyBatis学习笔记】系列之预备篇一:ant的下载与安装

【MyBatis学习笔记】系列之预备篇二:ant入门示例

【MyBatis学习笔记】系列之一:MyBatis入门示例

【MyBatis学习笔记】系列之二:MyBatis增删改示例

【MyBatis学习笔记】系列之三:MyBatis的association示例

【MyBatis学习笔记】系列之四:MyBatisassociation的两种形式

【MyBatis学习笔记】系列之五:MyBatis与Spring集成示例

【MyBatis学习笔记】系列之六:MyBatis与Spring集成示例续

【MyBatis学习笔记】系列之七:MyBatis一对多双向关联

【MyBatis学习笔记】系列之八:MyBatisMapperScannerConfigurer配置

【MyBatis学习笔记】系列之九:MyBatiscollection的两种形式

【MyBatis学习笔记】系列之十:MyBatis日志之Log4j示例

【MyBatis学习笔记】系列之十一:MyBatis多参数传递之注解方式示例

【MyBatis学习笔记】系列之十二:MyBatis多参数传递之默认命名方式示例

【MyBatis学习笔记】系列之十三:MyBatis多参数传递之Map方式示例

【MyBatis学习笔记】系列之十四:MyBatis中的N+1问题

【MyBatis学习笔记】系列之十五:MyBatis多参数传递之混合方式

【MyBatis学习笔记】系列之十六:Spring声明式事务管理示例

【MyBatis学习笔记】系列之十七:MyBatis多对多保存示例

本文出自 “肖凡的专栏” 博客,请务必保留此出处

如果可以,我真想和你一直旅行。

MyBatis日志之Log4j示例——MyBatis学习笔记之十

相关文章:

你感兴趣的文章:

标签云: