首先我们先来聊一下什么是log4j?
至于他为什么叫log4j,log(日志) 4(four--for)谐音吧,j 就是java 总的来说就是为java提供日志
Log4J
- 由 apache 推出的开源免费日志处理的类库
- 为什么需要日志: 2.1 在项目中编写 System.out.println();输出到控制台,当项目发布 到 tomcat 后,没有控制台(在命令行界面能看见.),不容易观察一些输出结果. 2.2 log4j 作用,不仅能把内容输出到控制台,还能把内容输出到文件中.便于观察结果.
- 使用步骤: 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 #格式
- log4j 输出级别 4.1 fatal(致命错误) > error (错误) > warn (警告) > info(普通信息) > debug(调试信息) 4.2 在 log4j.properties 的第一行中控制输出级别
- log4j 输出目的地 5.1 在一行控制输出目的地
- 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支持,还对其他日志记录工具的支持,下面是官方给出的
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看一下
就简单查询功能
什么东西一大堆,输出一些没用的东西,最多也就要最后三条,那我们该怎么做呢?
log4j 中可以输出指定内容的日志(控制某个局部内容的日志级别)
1 命名级别(包级别):
#提高级别为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语句,和查看参数,非常方便