?配置Log4J
問題:
Log4J支持Properties和XML兩種格式的配置文件。
解決方案:
定義log4j.properties配置文件
# 所有Log信息輸出到標準輸出(System.out)和在下面指定的一個文件 # WARN是默認的logging級別 log4j.rootCategory = WARN, STDOUT, FILE
# 應用程序的logging級別是DEBUG log4j.logger.com.discursive = DEBUG
# 配置標準輸出Appender log4j.appender.STDOUT = org.apache.log4j.ConsoleAppender log4j.appender.STDOUT.layout = org.apache.log4j.PatternLayout log4j.appender.STDOUT.layout.ConversionPattern = %5p (%F:%L) %m%n
# 配置輸出文件Appender log4j.appender.FILE = org.apache.log4j.RollingFileAppender log4j.appender.FILE.File = output.log log4j.appender.FILE.MaxFileSize = 2000KB log4j.appender.FILE.MaxBackupIndex = 5 log4j.appender.FILE.layout = org.apache.log4j.PatternLayout log4j.appender.FILE.layout.ConversionPattern = %d %-5p %c - %m%n
|
PropertyConfigurator.configure(getClass() .getResource("/resources/log4j.properties"));
Logger logger = Logger.getLogger("com.discursive.SomeApp"); logger.info("This is a info message"); logger.error("This is a error message");
|
使用BasicConfigurator類來加載log4j.properties配置。使用Logger.getLogger獲得一個logger實例。
配置文件中的rootCategory指定將log輸出到控制臺和output.log文件。文件Appender使用了RollingFileAppender,當文件大小達到最大文件大小(MaxFileSize)2000KB時,RollingFileAppender會備份原log文件,并再創(chuàng)建一個新的log文件。
配置文件指定默認的logging級別是DEBUG(log4j.logger.com.discursive = DEBUG)。所以,所有級別低于DEBUG的log信息都不會被輸出。Log4J按重要度定義了五個log級別,分別是:DEBUG, INFO, WARN, ERROR, 和FATAL。
其他:
Log4J還可以使用XML格式的配置文件,使用DOMConfigurator讀取。
Log4J使用Appender和Layout來定制log輸出。Appender指定輸出到何處,Layout指定如何輸出(輸出的格式)。
Log4J內置的Appender有:
?SMTPAppender
?RollingFileAppender
?SocketAppender
?SyslogAppender
?NTEventLogAppender
Log4J支持的Layout有
?XMLLayout
?PatternLayout
?HTMLLayout
?DateLayout.