org.apache.ibatis.logging.LogFactory.useSlf4jLogging();
org.apache.ibatis.logging.LogFactory.useLog4JLogging();
org.apache.ibatis.logging.LogFactory.useJdkLogging();
org.apache.ibatis.logging.LogFactory.useCommonsLogging();
org.apache.ibatis.logging.LogFactory.useStdOutLogging();
如果你决定要调用以上某个方法,请在调用其它 MyBatis 方法之前调用它。另外,仅当运行时类路径中存在该日志工具时,调用与该日志工具对应的方法才会生效,否则 MyBatis 一概忽略。如你环境中并不存在 Log4J,你却调用了相应的方法,MyBatis 就会忽略这一调用,转而以默认的查找顺序查找日志工具。
关于 SLF4J、Apache Commons Logging、Apache Log4J 和 JDK Logging 的 API 介绍不在本文档介绍范围内。不过,下面的例子可以作为一个快速入门。关于这些日志框架的更多信息,可以参考以下链接:
日志配置
你可以对包、映射类的全限定名、命名空间或全限定语句名开启日志功能来查看 MyBatis 的日志语句。
再次说明下,具体怎么做,由使用的日志工具决定,这里以 Log4J 为例。配置日志功能非常简单:添加一个或多个配置文件(如 log4j.properties),有时需要添加 jar 包(如 log4j.jar)。下面的例子将使用 Log4J 来配置完整的日志服务,共两个步骤:
步骤 1:添加 Log4J 的 jar 包
因为我们使用的是 Log4J,就要确保它的 jar 包在应用中是可用的。要启用 Log4J,只要将 jar 包添加到应用的类路径中即可。Log4J 的 jar 包可以在上面的链接中下载。
对于 web 应用或企业级应用,则需要将 log4j.jar
添加到 WEB-INF/lib
目录下;对于独立应用,可以将它添加到JVM 的 -classpath
启动参数中。
步骤 2:配置 Log4J
配置 Log4J 比较简单,假如你需要记录这个映射器接口的日志:
package org.mybatis.example;
public interface BlogMapper {
@Select(“SELECT * FROM blog WHERE id = #{id}”)
Blog selectBlog(int id);
}
在应用的类路径中创建一个名称为 log4j.properties
的文件,文件的具体内容如下:
Global logging configuration
log4j.rootLogger=ERROR, stdout
MyBatis logging configuration…
log4j.logger.org.mybatis.example.BlogMapper=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
添加以上配置后,Log4J 就会记录 org.mybatis.example.BlogMapper
的详细执行操作,且仅记录应用中其它类的错误信息(若有)。
你也可以将日志的记录方式从接口级别切换到语句级别,从而实现更细粒度的控制。如下配置只对 selectBlog
语句记录日志:
log4j.logger.org.mybatis.example.BlogMapper.selectBlog=TRACE
与此相对,可以对一组映射器接口记录日志,只要对映射器接口所在的包开启日志功能即可:
log4j.logger.org.mybatis.example=TRACE
某些查询可能会返回庞大的结果集,此时只想记录其执行的 SQL 语句而不想记录结果该怎么办?为此,Mybatis 中 SQL 语句的日志级别被设为DEBUG(JDK 日志设为 FINE),结果的日志级别为 TRACE(JDK 日志设为 FINER)。所以,只要将日志级别调整为 DEBUG 即可达到目的:
log4j.logger.org.mybatis.example=DEBUG
要记录日志的是类似下面的映射器文件而不是映射器接口又该怎么做呢?
<?xml version="1.0" encoding="UTF-8" ?>select * from Blog where id = #{id}
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
Java核心架构进阶知识点
面试成功其实都是必然发生的事情,因为在此之前我做足了充分的准备工作,不单单是纯粹的刷题,更多的还会去刷一些Java核心架构进阶知识点,比如:JVM、高并发、多线程、缓存、Spring相关、分布式、微服务、RPC、网络、设计模式、MQ、Redis、MySQL、设计模式、负载均衡、算法、数据结构、kafka、ZK、集群等。而这些也全被整理浓缩到了一份pdf——《Java核心架构进阶知识点整理》,全部都是精华中的精华,本着共赢的心态,好东西自然也是要分享的
内容颇多,篇幅却有限,这就不在过多的介绍了,大家可根据以上截图自行脑补
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门即可获取!
mg-H7HjoDEu-1711795088661)]
[外链图片转存中…(img-YOjpsVme-1711795088662)]
内容颇多,篇幅却有限,这就不在过多的介绍了,大家可根据以上截图自行脑补
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门即可获取!