log4j笔记
1、什么是log4j?
Log4j 是Apache为Java提供的日志管理工具。他与System.out.println()的作用相似,用来跟踪、调试、维护程序。
2、让log4j与System.out.println()进行比较
* 前者专业日志工具
> 可以随意的指定输出目的地(可以是控制台,文件)
> 可以灵活控制级别(只输出错误级别的日志,而信息级别的不输出)
> 可以控制输出的格式!
* 后者只能输出到控制台!无法控制级别(信息、错误)!
3、什么东西使用了log4j
* c3p0
* hibernate
* spring
4、Log4j中有三大组件
Logger(日志器):用来输出日志消息的类,它可以输出不同级别的消息
Appender(日志输出目标):通常我们希望日志输出到文件中,以及控制台,也可能希望日志输出数据库,该类就表示一个输出的目标
Layout(格式化器):对输出的消息进行格式化,例如在消息中添加日期,以及级别等
5、配置文件
(1)日志级别
在Log4j中日志消息分为五个级别,级别由高到低排列如下:
* FATAL:重大错误,例如系统崩溃;
* ERROR:错误,例如某模块瘫痪;
* WARN:警告,程序的隐患,如果不处理,将来可能就是错误;
* INFO:信息,可以用来查看程序执行的流程;
* DEBUG:调试,用来调试程序的bug。
( 设置日志器的级别为Level.ERROR后,只有高于ERROR级别的日志才能输出)
(2)log4j.properties
把log4j放到项目的src下(即放到classes下),并且命名为log4j.properties,那么log4j会自动加载这个配置文件,这也是我们最为常用的方式
(3)根日志器
在配置文件中,需要配置名为log4j.rootLogger的日志器,它就是根日志器。其他的日志器都是根日志器的子日志器,会继承根日志器的目的地,以及级别等。
log4j.rootLogger=DEBUG,A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.SimpleLayout
* log4j.rootLogger表示根日志器,DEBUG是指定根日志器的输出级别,只要大于等于DEBUG级别的日志就可以输出。A1是说明目的地(Appender)的名称;
* log4j.appender.A1表示目的地,org.apache.log4j.ConsoleAppender表示目的地为控制台目的地,即输出结果在控制台上显示;
log4j.appender.A1.layout表示A1这个目的地的格式化器,org.apache.log4j.SimpleLayout表示简化格式化器
(4)Appender
* ConsoleAppender:向控制台输出日志;
* FileAppender:向文件输出日志
* DailyRollingFileAppender:向文件输出日志,每天一个日志文件;
* RollingFileAppender:向文件输出日志,当文件大小达到指定大小后,生成新文件;
(5)layout
我们常用的格式化器是PatternLayout
* %m:信息本身;
* %c:日志器的名称;
* %d:日期,还可以指定日期的格式,例如:%d{yyyy-MM-dd HH:mm:ss};
* %p:日志级别;
* %n:换行;
* %t:当前线程;
* %l:输出日志的Java类相关信息。