1、Log4j简介
作用:
1、跟踪代码的运行轨迹。
2、输出调试信息
三大组成:
1、Logger类-生成日志。
2、Appender类-定义日志输出的目的地。
3、Layout类-指定日志输出的格式。
2、Logger组件
日志共分为5种级别(ON开,OFF关这两个不计算在内),从高到底(从严重到轻微)排序为:
FATAL—严重的错误,可能会导致程序不能正常运行. 类似System.exit(),整个项目都不能运行
ERROR – 错误,影响程序的正常运行。 类似当前线程挂了,但其它线程或组件还在跑
WARN – 警告,不会影响程序的运行。最好将此问题修正。
INFO – 一般信息。不影响程序的运行。可能是用户的调试信息。可有可无。等同于syserr
DEBUG – 一般的信息。等同于sysout
上面五种级别分别对应以下几个方法
fatal(Object)
error(Object)
warn(Object)
info(Object)
debug(Object)
当信息大于或是等于配置的级别时才会输出日志。
3、Appender组件
(仅要求记住两个)
Console – 控制台。org.apache.log4j.ConsoleAppender
File - 文件。 org.apache.log4j.FileAppender , org.apache.log4j.RollingFileAppender
4、Layout组件
功能是定义日志的输出格式
org.apache.log4j.HTMLLayout
org.apache.log4j.PatternLayout (自定义)
org.apache.log4j.SimpleLayout
对于自定义格式,see page 256 chart 17-1。
%d %p %c %m%n是我经常用的格式,要求记住.
%d – 具体的时间.
%p – 优先级
%c – 信息的输出类
%L—行号
%m – 信息文本
%n —换行符
5、Log4j的基本使用方法
1、将log4j.jar文件,Copy到WEB-INF/lib目录下。
2、在src目录下(即WEB-INF/classes)建立一个log4j.properties文件
3、书写log4j.properties
log4j.properties文件的写法如下,以后要用直接对着写就好了
#####配置根元素
log4j.rootLogger=INFO,console,file
#file的输入地址为文件
log4j.appender.file=org.apache.log4j.RollingFileAppender
#以下是具体的目录
log4j.appender.file.File=e:/abc/a.log
#每个文件的最大大小
log4j.appender.file.MaxFileSize=2KB
#最多可以是多少个文件
log4j.appender.file.MaxBackupIndex=3
#信息的布局格式-按指定的格式打出
log4j.appender.file.layout=org.apache.log4j.PatternLayout
#具体的布局格式 - %d为时间
log4j.appender.file.layout.ConversionPattern=%d %p [%c] %m%n
#以下配置输出到控制台
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d %p [%c] %m%n
4、书写自已的类,并在自己的类中使用日志
其实就是在要用log4j 的类中声明一个Logger对象 然后调用我们想要输出的级别所对应的方法(注意:定义输出级别时,级别比我们定义底的级别不会输出,级别比我们定义高的级别会输出) 这里我只用一个测试代码来代替:
package log4j;
import org.apache.log4j.Logger;
public class Log4jDemo {
public static void main(String[] args) {
Logger log = Logger.getLogger(Log4jDemo.class);
for (int i = 0; i < 10; i++) {
log.fatal("严重错误:"+i);
log.error("错误:"+i);
log.warn("警告:"+i);
log.info("一般信息:"+i);
log.debug("调试信息:"+i);
}
}
}