前一章解释了log4j的核心组件.本章介绍如何使用配置文件配置核心组件.配置log4j涉及分配Level,定义Appender,以及在配置文件中指定Layout对象.
log4j.properties 文件是一个log4j配置文件,它保存属性在键值对中.默认情况下,LogManager在 CLASSPATH 中查找名为 log4j.properties 的文件.
根记录器的级别定义为 DEBUG . DEBUG 将名为X的appender附加到它.
将名为X的appender设置为有效的appender.
设置appender X的布局.
log4j.properties语法:
以下是appender X的 log4j.properties 文件的语法:
# Define the root logger with appender Xlog4j.rootLogger = DEBUG, X# Set the appender named X to be a File appenderlog4j.appender.X=org.apache.log4j.FileAppender# Define the layout for X appenderlog4j.appender.X.layout=org.apache.log4j.PatternLayoutlog4j.appender.X.layout.conversionPattern=%m%n
log4j.properties示例
使用上面的语法,我们定义 log4j.properties 文件中的以下内容:
根记录器的级别定义为 DEBUG , DEBUG appender命名为 FILE .
appender FILE 定义为 org.apache.log4j.FileAppender .它写入位于 log 目录中的名为 log.out 的文件.
布局模式已定义为%m%n ,这意味着打印的日志消息后面会跟一个换行符.
# Define the root logger with appender filelog4j.rootLogger = DEBUG, FILE# Define the file appenderlog4j.appender.FILE=org.apache.log4j.FileAppenderlog4j.appender.FILE.File=${log}/log.out# Define the layout for file appenderlog4j.appender.FILE.layout=org.apache.log4j.PatternLayoutlog4j.appender.FILE.layout.conversionPattern=%m%n
值得注意的是,log4j支持UNIX样式的变量替换,例如$ {variableName}.
调试级别
我们已经使用了DEBUG appenders.所有可能的选项包括:
TRACE
DEBUG
INFO
警告
错误
致命
ALL
这些级别将在本教程后面解释.
Appenders
Apache log4j提供Appender对象,主要负责将日志消息打印到不同的目的地,如控制台,文件,套接字,NT事件日志等.
每个Appender对象都有不同的属性与它相关联,这些属性表示该对象的行为.
物业 | 描述 |
---|---|
布局 | Appender使用Layout对象和与它们相关联的转换模式来格式化日志信息. |
target | 目标可能是控制台,文件,或其他项目,取决于appender. |
level | 该级别是必需的控制日志消息的过滤. |
阈值 | Appender可以拥有与其关联的阈值级别,与记录器级别无关. Appender会忽略任何级别低于阈值级别的日志消息. |
filter | Filter对象可以分析超出级别匹配的日志信息,并决定是否应该由特定的Appender处理或忽略日志记录请求. |
我们可以通过以下方法在配置文件中包含以下设置,将Appender对象添加到Logger:
log4j.logger.[logger-name]=level, appender1,appender..n
您可以用XML格式编写相同的配置,如下所示:
如果您愿意在程序中添加Appender对象,那么您可以使用以下方法:
public void addAppender(Appender appender);
addAppender()方法将一个Appender添加到Logger对象.如示例配置所示,可以在逗号分隔列表中向记录器添加许多Appender对象,每个对象都将记录信息打印到不同的目标.
我们只使用了一个appender FileAppender 在上面的示例中.所有可能的appender选项是:
AppenderSkeleton
AsyncAppender
ConsoleAppender
DailyRollingFileAppender
ExternallyRolledFileAppender
FileAppender
JDBCAppender
JMSAppender
LF5Appender
NTEventLogAppender
NullAppender
RollingFileAppender
SMTPAppender
SocketAppender
SocketHubAppender
SyslogAppender
TelnetAppender
WriterAppender
我们将在登录文件中介绍FileAppender,并在登录数据库.
布局
我们使用了PatternLayout和我们的appender.所有可能的选项包括:
DateLayout
HTMLLayout
PatternLayout
SimpleLayout
XMLLayout
使用HTMLLayout和XMLLayout,您也可以生成HTML和XML格式的日志.
布局格式
您将学习如何在章节中格式化日志消息:日志格式.