Mybatis框架对log4j日志的支持

首先我们先来聊一下什么是log4j?

至于他为什么叫log4j,log(日志)  4(four--for)谐音吧,j 就是java  总的来说就是为java提供日志    

Log4J

  1. 由 apache 推出的开源免费日志处理的类库
  2. 为什么需要日志:     2.1 在项目中编写 System.out.println();输出到控制台,当项目发布         到 tomcat 后,没有控制台(在命令行界面能看见.),不容易观察一些输出结果.     2.2 log4j 作用,不仅能把内容输出到控制台,还能把内容输出到文件中.便于观察结果. 
  3. 使用步骤:     3.1 导入 log4j-xxx.jar     3.2 在 src 下新建 log4j.properties(路径和名称都不允许改变)     3.2.1 ConversionPattern :写表达式     3.2.2 log4j.appender.LOGFILE.File 文件位置及名称(日志文件扩展名.log)         

  #debug是输出级别,console和logfile是输出位置,分别为控制台和文件
            log4j.rootCategory=DEBUG, CONSOLE ,LOGFILE
            log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
            log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
            log4j.appender.CONSOLE.layout.ConversionPattern=%C %d{YYYY-MM-dd hh:mm:ss} %m %n  #只定输出格式
            log4j.appender.LOGFILE=org.apache.log4j.FileAppender
            log4j.appender.LOGFILE.File=E:/my.log #文件输出位置
            log4j.appender.LOGFILE.Append=true    #是否在文件末尾追加
            log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
            log4j.appender.LOGFILE.layout.ConversionPattern=%C %m %L %n #格式

  1. log4j 输出级别     4.1 fatal(致命错误) > error (错误) > warn (警告) > info(普通信息) > debug(调试信息)     4.2 在 log4j.properties 的第一行中控制输出级别
  2. log4j 输出目的地     5.1 在一行控制输出目的地
  3. pattern 中常用几个表达式     6.1 %C 包名+类名     6.2%d{YYYY-MM-dd HH:mm:ss} 时间     6.3%L 行号     6.4%m 信息     6.5%n 换行

下面再来说一下mybatis  log4j的配置和使用

Mybatis不仅对log4j支持,还对其他日志记录工具的支持,下面是官方给出的

标签        这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。 下表描述了设置中各项的意图、默认值等。

logImpl 指定 MyBatis 所用日志的具体实现,未指定时将自动查找。 SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING 未设置 1.在 mybatis 全局配置文件中通过标签控制 mybatis 全局开关

2.在 mybatis.xml 中开启 log4j

<settings>
	<setting name="logImpl" value="LOG4J"/>
</settings>

2.1 必须保证有 log4j.jar

  2.2 在 src 下有 log4j.properties文件

其实现在已经是可以用的了,下面写个demo看一下

就简单查询功能 20190502002214402 什么东西一大堆,输出一些没用的东西,最多也就要最后三条,那我们该怎么做呢?

log4j 中可以输出指定内容的日志(控制某个局部内容的日志级别)     1 命名级别(包级别): namespace 属性中除了最后一个类名         例如 namespace=”mapper.UserMapper” 其中包级别为             mapper ,需要在 log4j.propeties 中         1.1 先在总体级别调成 Error 不输出无用信息         1.2 在设置某个指定位置级别为 DEBUG

#提高级别为error
log4j.rootCategory=debug, CONSOLE 
#将mapper包下的改为dubug级别
log4j.logger.mapper=DEBUG

#控制台
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%C %p  %m %n
# %C 包名+类名
# %d{YYYY-MM-dd HH:mm:ss} 时间
# %L 行号
# %m 信息
# %n 换行
#文件输出地
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=E:/my.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%C %m %L %n

 2 类级别           2.1 namespace 属性值 ,namespace 类名         3 方法级别           3.2 使用 namespace 属性值+标签 id 属性值

 最后看到的结果就为:

方便开发过程中检查sql语句,和查看参数,非常方便

20190502003346151