Log4J简明使用手册

本文包含Log4J的配置以及使用两方面:

[color=blue][size=large]配置[/size][/color]
Log4J的配置通常利用properties文件, 当然也允许xml或者数据库.
properties文件通常放在与src平行的目录下
配置包含三个方面, Logger / Appender / Layout

[b]Logger[/b]

程序中利用Log4j功能的入口,允许定义指定名称的Logger,同时也允许定义rootLogger作为默认Logger。默认Logger也在Log4j无法定位指定名称的Logger时使用。
Logger的定义规则为:

[color=blue]log4j.myLogger = [level], appender1, appender2[/color]

myLogger 为任意logger名称,也可为rootLogger;
level为日志等级,只有等级不低于其的日志才允许输出,Log4j定义了五种日志等级,由低到高依次为 DEBUG, INFO, WARN, ERROR, FATAL;
appender1, appender2为指定输出的Appender名称,可为多个,用逗号隔开。

[b]Appender[/b]

指定日志输出的设备。即定义日志最终将输出到什么地方。
定义方式如下:

[color=blue]log4j.appender.myLogger = org.apache.log4j.ConsoleAppender[/color]

Log4j提供的Appender有:

[list]
[*]org.apache.log4j.ConsoleAppender(控制台)
[*]org.apache.log4j.FileAppender(文件)
[*]org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
[*]org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生新文件)
[*]org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方
[/list]
每一类Appender都有自己特定的参数可配置,具体配置方式如:

[color=blue]log4j.appender.myLogger.MaxFileSize= 100KB[/color]

同时Log4j也允许自定义Appender,具体请参考其他文档。

[b]Layout[/b]

定义输出日志的格式。定义方式如下:

[color=blue]log4j.appender.myLogger.layout = org.apache.log4j.SimpleLayout[/color]

同样地,Log4j也默认提供了一些格式:

[list]
[*]org.apache.log4j.HTMLLayout(以HTML表格形式布局),
[*]org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
[*]org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
[*]org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
[/list]
每一类Layout也具备自己特定的参数,但比较灵活的是PatternLayout,它提供了类似C语言中的格式定义的符号,即:

%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似: 2002年10月18日 22:10:28,921
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)

如:log4j.appender.fileLayout.layout.ConversionPattern=%p %t %c - %m%n


[size=large][color=blue]使用[/color][/size]

Log4j在Java class中的使用很简单,通过Logger.getLogger(s)方法获取,方法需要传入一个参数,可以为Class或者String,Log4j将其作为logger的名称查找配置,如未找到,则使用rootLogger。(对于传入Class,将转换为full name)

在使用时,使出Logger提供的不同等级的方法输出日志,即debug(), info(), warn(), error(), fatal()。


本文参考自:
[url]http://www.blogjava.net/rickhunter/articles/28133.html[/url]
[url]http://topic.csdn.net/u/20070411/16/6fb1f2dd-b270-4085-9f5d-6e29565e00c5.html[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值