|
介绍 命令行参数解析、应用程序配置和日志记录,作为一个应用程序的骨架,随处可见。因此,Apache软件组织开发出了一套通用的类库,用来帮助软件开发人员完成这些“骨架”的建立。其中: •Commons CLI用于命令行解析 •Commons Configuration用于读取properties格式或者XML格式的配置信息 •Commons Logging和Log4J用来提供日志支持。 这些通用的类库都在http://jakarta.apache.org/commons/index.html网址上提供下载
Log4J是一个高度可配置的Logging框架,提供了结构化,多种目标和格式支持。
•配置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.
翻译作者: 与java共舞-稀饭
|