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 x = Logger.getLogger("wombat"); 和 Logger y = Logger.getLogger("wombat");是指向同一个对象,这样的话不需要到处传递对象的引用。
看来还是用1.2版的比较好,现在的版本是1.2.15,和1.2.8比有很大的变化。从配置文件里反映出来,大的结构都变了。现把要点摘录如下:
Log4j有3个主要部件,loggers, appenders and layouts.
- logger有如下几个级别,排列如下:
DEBUG < INFO < WARN < ERROR < FATAL
另外Logger x = Logger.getLogger("wombat"); 和 Logger y = Logger.getLogger("wombat");是指向同一个对象,这样的话不需要到处传递对象的引用。
- appender的意思是“输出的目的地”, 它可以是console,file,gui component,JMS,remote socket server,NT Event Log
- layout顾名思义是管输出的格式的,PatternLayout是Log4j的标准输出格式,具体内容请参照javadoc
| Format modifier | left justify | minimum width | maximum width | comment |
|---|---|---|---|---|
| %20c | false | 20 | none | Left pad with spaces if the category name is less than 20 characters long. |
| %-20c | true | 20 | none | Right pad with spaces if the category name is less than 20 characters long. |
| %.30c | NA | none | 30 | Truncate from the beginning if the category name is longer than 30 characters. |
| %20.30c | false | 20 | 30 | Left 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.30c | true | 20 | 30 | Right 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. 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);
本文详细介绍了Log4j 1.2版本的主要特性,包括logger、appender和layout三个核心组件的功能及使用方法。重点讲解了不同级别的logger、appender的工作原理及其配置方式,并通过实例展示了如何配置PatternLayout来定制日志输出格式。
1079

被折叠的 条评论
为什么被折叠?



