Index |
|
Log4j的类图 |
|
Logger:日志写出器 | ||||||||||
Logger对象是用来取代System.out或者System.err的日志写出器,用来供程序员输出日志信息。
|
Appender:日志目的地 | ||||||
每个logger都可以拥有一个或者多个appender,每个appender表示一个日志的输出目的地,比如console或者某个文件。可以使用Logger.addAppender(Appender app)为logger增加一个appender;可以使用Logger.removeAppender(Appender app)为logger移除一个appender。 默认情况下,logger的additive标志被设置为true,表示子logger将继承父logger的所有appenders。该选项可以被重新设置,表示子logger将不再继承父logger的appenders。 root logger拥有目标为system.out的consoleAppender,故默认情况下,所有的logger都将继承该appender。 ------ Log4j APIs : class Logger ------ // 为logger对象增加或者移除一个Appender对象 :. public void appAppender(Appender app); public void removeAppender(Appender app); // 获得和设置additive标志:是否继承父logger的appenders :. // 注意:在设置additive标志为false时,必须保证已经为该logger设置了新的appender, :. // 否则log4j将报错:log4j:WARN No appenders could be found for logger (x.y.z). :. public boolean getAdditivity(); public void setAdditivity(boolean additive);
|
Layout:日志格式化器 | ||||
每个appender都和一个layout相联系;layout的任务是格式化用户的logging request,appender的任务是把layout格式化好的输出内容送往指定的目的地。
|
Configuration:配置 | ||||||||||||||||||||||||||||||||||||||
对log4j环境的配置就是对root logger的配置,包括把root logger设置为哪个级别(level);为它增加哪些appender,等等。这些可以通过设置系统属性的方法来隐式地完成,也可以在程序里调用XXXConfigurator.configure()方法来显式地完成。
|
Log4j的编码习惯 |
|
参考资料 |
|