•配置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文件,并再创建一个新的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.