Log4j初体验

一句话概括处理过程

       首先日志消息被创建,然后传递给能够处理日志消息的日志对象,再通过设定日志的输出方式和输出格式后,最终日志信息得到处理。

优先级   

   从上面的图可以看到,消息传来时,首先会经过一个优先级判定。Log4j为日志信息定义了7种不同的优先级,定义这几个优先级的依据是产生日志信息的源。有时你需要在debug的时候输出,就像system.out.println();有时你在处理同时1000条数据时,你想看看当前处理的进度,可以通过日志信息输出。为了区别对待这些不同的日志信息,就定义了不同的优先级。

Logger log=Logger.getLogger(Test.class);
//output different log-message 
log.debug("This is Debug message");
log.info("This is Info message");
log.warn("This is Warn message");
log.error("This is Error message");
log.fatal("This is fatal message");

log4j的优先级列表如下:

优先级别代表的意义
ALL所有信息都输出
DEBUG程序调试的消息输出
INFO 程序运行时粗过程的消息
WARN程序可能出现问题的警告消息
ERROR程序出现严重的问题的错误消息
FATAL程序出现致命的错误,应立即停止
OFF关闭日志处理,不输出

 

 

 

 

 

 

 

一般在程序中经常使用的DEBUG、INFO、WARN和ERROR这四个级别。

Appender

   创建完对应级别的logger之后,就是要定义输出处理了,也就是上图中的Output Handler。方法是实现接口Appender,这个接口定义日志信息要输出到什么地方去。常用的Appender实现类如下:

Appender实现类详细信息
ConsoleAppender把日志信息通过system.out输出到控制台窗口。
FileAppender把日志信息输出到指定的文本中。
DailRollingFileAppender继承FileAppender,只不过会根据设定天数产生。
RollingFileAppender继承FileAppender,当日志文件大于摸个设定值时产生新的日志。
WriterAppender把日志信息以流的格式发送到指定的地方。
SMTPAppender把日志信息屹email进行发送。
SocketAppender把日志信息通过Socket的方式发送给远程日志服务器。
JDBCAppender把日志信息存入数据库。
SocketHubAppender 把日志信息以Socket的方式发给若干个远程日志服务器。

 

 

 

 

 

 

 

 

 

 

 

 

Layout

   还是上图,设定好了将日志信息输出至什么地方之后,就要设置输出的样式。方法是实现Layout接口,对日志信息按照指定的格式输出。

Layout实现类详细信息
HTMLLayout把日志信息格式化成HTML的表格形式输出。
SimpleLayout简单形式输出,是输出优先级和内容。
XMLLayout 把日志信息以XML格式进行输出。
TTCCLayout输出时间、线程、类别等信息。
PatternLayout按照指定符号格式输出日志信息。

 

 

 

 

 

 

 

实例代码如下:

Logger log=Logger.getLogger(Test.class);
HTMLLayout layout=new HTMLLayout();
FileAppender appender=null;
try{
    appender=new FileAppender(layout,"logfile.htm",true);  
}catch(IOException){
     e.printStackTrace();
}
//set appender
log.addAppender(appender);
//set level
log.setLevel(Level.DEBUG);
log.debug("This is debug message");

 运行Test类后,在项目的根目录下产生logfile.htm文件,打开之后,你可以看到日志信息以表格的形式展现。

但是,,,,通过这种代码方式对log4j设定太不给力,真正常用的是通过配置文件来设置。So, to be continued.....

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值