MyBatis快速入门(15)配置日志打印

Mybatis 的内置日志工厂提供日志功能,内置日志工厂将日志交给以下其中一种工具作代理:

SLF4J

Apache Commons Logging

Log4j 2

Log4j

JDK logging

MyBatis 内置日志工厂基于运行时自省机制选择合适的日志工具。它会使用第一个查找得到的工具(按上文列举的顺序查找)。如果一个都未找到,日志功能就会被禁用。

不少应用服务器(如 Tomcat 和 WebShpere)的类路径中已经包含 Commons Logging,所以在这种配置环境下的 MyBatis 会把它作为日志工具,记住这点非常重要。这将意味着,在诸如 Tomcat 的环境中,它提供了 Commons Logging 的私有实现,你的 Log4J 配置将被忽略。MyBatis 将你的 Log4J 配置忽略掉是相当令人郁闷的(事实上,正是因为在这种配置环境下,MyBatis 才会选择使用 Commons Logging 而不是 Log4J)。如果你的应用部署在一个类路径已经包含 Commons Logging 的环境中,而你又想使用其它日志工具,你可以通过在 MyBatis 配置文件 mybatis-config.xml 里面添加一项 setting 来选择别的日志工具。

logImpl 可选的值有:SLF4J、LOG4J、LOG4J2、JDK_LOGGING、COMMONS_LOGGING、STDOUT_LOGGING、NO_LOGGING,或者是实现了接口 org.apache.ibatis.logging.Log 的,且构造方法是以字符串为参数的类的完全限定名。

你也可以调用如下任一方法来使用日志工具:

如果你决定要调用以上某个方法,请在调用其它 MyBatis 方法之前调用它。另外,仅当运行时类路径中存在该日志工具时,调用与该日志工具对应的方法才会生效,否则 MyBatis 一概忽略。如你环境中并不存在 Log4J,你却调用了相应的方法,MyBatis 就会忽略这一调用,转而以默认的查找顺序查找日志工具。

 

 

 

 

 

 

配置log4j

首先引入依赖:

然后在resource目录下添加log4j.properties文件,配置:

配置的文件是自定义插件打印SQL和执行时间的类。下面在类中添加log4j的打印工具:

打印日志:

禁用掉缓存,然后看到效果:

修改日志配置类:

log4j.logger.mybatis.UserMapper=TRACE

或者只针对某些SQL语句打印日志:

log4j.logger.mybatis.UserMapper.selectById=TRACE

可以看到执行效果:

 

 

 

 

 

 

配置slf4j

SLF4J代表Simple Logging Facade for Java。它提供了Java中所有日志框架的简单抽象。因此,它使用户能够使用单个依赖项处理任何日志框架,例如:Log4j,Logback和JUL(java.util.logging)。可以在运行时/部署时迁移到所需的日志记录框架。

也就是说slf4j就是对所有日志框架的一个接口抽象,我们具体打印日志还是需要引入具体的依赖,如果使用log4j,就加入依赖:

这里不使用log4j,使用slf4j+logback进行日志打印,加入依赖:

修改配置文件:

<setting name="logImpl" value="SLF4J"/>

然后就可以看到经典的slf4j的日志:

在代码中打印日志也很简单,引入日志类即可:

private static final Loggerlog = LoggerFactory.getLogger(MyBatisDemo.class);

logback的配置文件可以在resource下面新建一个logback.xml文件,在里面配置日志的具体输出。logback的配置这里不是重点。

 

 

代码地址:https://gitee.com/blueses/mybatis-demo  07

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值