您的位置:首页 > 其它

Log4j 1.2.15学习笔记

2007-09-25 10:16 417 查看
Log4j发展的真快,2005年用的时候版本是1.2.8。现在再看时发现都出到2.0了,仔细一看,还有点意思,log4j上作了个说明。log4j有3个分支,1.2是稳定版,1.3不再继续,2.0是实验版。
看来还是用1.2版的比较好,现在的版本是1.2.15,和1.2.8比有很大的变化。从配置文件里反映出来,大的结构都变了。现把要点摘录如下:
Log4j有3个主要部件,loggers, appenders and layouts.

logger有如下几个级别,排列如下:
DEBUG < INFO < WARN < ERROR < FATAL


logger引入了继承的概念,这里指的是名称继承,logger com.foo是 com.foo.Bar的父logger。同样java.util是java.util.Vector的父类。
另外Logger x = Logger.getLogger("wombat"); 和 Logger y = Logger.getLogger("wombat");是指向同一个对象,这样的话不需要到处传递对象的引用。

appender的意思是“输出的目的地”, 它可以是console,file,gui component,JMS,remote socket server,NT Event Log

任何写log的请求会被传递到这个logger所有的appender那里,同样也会传递到继承关系的上一级的logger的appender那里。appender会随着logger继承关系而附加继承。如果想停止这种附加继承,可以把additivity的标记设为false。

layout顾名思义是管输出的格式的,PatternLayout是Log4j的标准输出格式,具体内容请参照javadoc

简单归纳一下PatternLayout,一般的格式是%+格式修饰符+转换字符。转换字符就是要显示哪些内容,可以参照javadoc查到,格式修饰符的规律如下:

Format modifier left justify minimum width maximum width comment
%20cfalse20noneLeft pad with spaces if the category name is less than 20 characters long.
%-20ctrue20noneRight pad with spaces if the category name is less than 20 characters long.
%.30cNAnone30Truncate from the beginning if the category name is longer than 30 characters.
%20.30cfalse2030Left pad with spaces if the category name is shorter than 20 characters. However, if category name is longer than 30 characters, then truncate from the beginning.
%-20.30ctrue2030Right pad with spaces if the category name is shorter than 20 characters. However, if category name is longer than 30 characters, then truncate from the beginning.
最后贴个例子:

log4j.rootLogger=debug, stdout, R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.log

log4j.appender.R.MaxFileSize=100KB
# Keep one backup file
log4j.appender.R.MaxBackupIndex=1

log4j.appender.R.layout=org.apache.log4j.PatternLayout

log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n


补充一点,配置文件要么放在classpath里,不用特殊声明。要么指明路径,如下初始化,一次即可。

String resource =
"/examples/lf5/InitUsingPropertiesFile/example.properties";
URL configFileResource =
InitUsingPropertiesFile.class.getResource(resource);
PropertyConfigurator.configure(configFileResource);

[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: