开启日记的作用

Mybatis通过开启日记log4j,能够可以通过日志信息,详细的阅读mybatis执行情况( 观察mybatis实际执行sql语句 以及SQL中的参数 和返回结果),还有JDBC建立数据库连接与关闭数据库连接的执行,增删改查等操作,而开启日记也能更加直观学习了解和掌握到Mybatis的一级缓存,二级缓存的详细操作。

开启log4j日记
  • 开启的大致过程:

idea mybatis mysql 日志打印 mybatis打开日志_Mybatis

  1. 导入log4j.jar(mybatis.zip中lib中包含此jar);或者直接建立log4j的依赖也行:
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>
  1. 在src目录下编写配置日志输出文件log4j.properties:
//设置日记级别为DEBUG
log4j.rootLogger=DEBUG, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
  1. 开启日志,Mybatis的全局配置conf.xml文件中:
<settings>
		<!-- 开启日志,并指定使用的具体日志 -->
		<setting name="logImpl" value="LOG4J"/>
		
	</settings>

如果不指定,Mybatis就会根据以下顺序 寻找日志
SLF4J →Apache Commons Logging →Log4j 2 → Log4j →JDK logging

  1. 如果出现:

    则很大可能是log4j.properties配置以及存放位置问题。
    而开启成功之后,可以十分直观地看到sql语句的执行过程,数据库连接的建立和关闭等详细过程。
  • 实际上,如果没有上面最后一步全局中开启日记,也可以正常根据Mybatis的默认寻找日记的顺序进行开启。而据说有人使用了全局开启日记会报错,删掉就正常,但我使用IDEA和eclipse都没有遇到过这种情况。
  • 阅读了其它关于Mybatis开启SLF4J、Log4j 2等日记的文章之后,发现大致流程与log4j日记的都差不多,也就是那三步,只是配置文件不同,开启时的名字不同和导相应的包。
log4j.properties文件的部分认识
  • Log4j配置文件中的三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局),或则可以说是日志级别日志要输出的地方日志输出的形式
  1. log4j常见的日记信息级别顺序为:DEBUG < INFO < WARN < ERROR;而设置相应的级别之后,该级别及高于该级别的信息才会显示打印出来。比如设置为INFO时,则DEBUG的信息不会被显示出来,而INFO、WARN、ERROR的信息才会显示出来。
  2. log4j允许将信息输出到其它地方如控制台(Console)、文件(Files)等,而上面选择的是指定输出到控制台(Console)上;倘若是输出到文件的,设置为相应的类:
//输出到文件中
log4j.appender.stdout=org.apache.log4j.FileAppender

网上查了一下常用到的日记输出位置及特性选择的类有:
org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
org.apache.log4j.RollingFileAppender(文件大小达到指定的尺寸的时候就会产生一个新文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

其实也用不到这么多的,只是作为拓展,方便以后查看而已。

  1. Layouts(布局)的输出格式有许多种,而上面用到的是灵活的布局模式(PatternLayout),设置输出格式类型和具体格式配置。而其它的的输出格式布局还有HTMLLayout(HTML的表格形式)、TTCCLayout(显示日志生成的时间、线程、类别等信息)等,这些控制设置的使用就暂时空缺,毕竟也还没用到过,以后有需要的时候再继续补充吧。
  • 实际上log4j的具体配置内容是十分多的,比如内容输出格式符号的控制、文件控制、配置输出文件到指定的目地、回滚文件等等。

注:本篇文章是在Mybatis学习过程中总结整理出来的,用于以后对于Mybatis知识点的复习回顾,如有错漏之处敬请指出,不胜感激!