- log4j 教程
- log4j - 首页
- log4j - 概述
- log4j - 安装
- log4j - 架构
- log4j - 配置
- log4j - 示例程序
- log4j - 日志方法
- log4j - 日志级别
- log4j - 日志格式化
- log4j - 文件日志
- log4j - 数据库日志
- log4j 有用资源
- log4j - 常见问题解答
- log4j - 快速指南
- log4j - 有用资源
- log4j - 讨论
log4j - 配置
上一章解释了 log4j 的核心组件。本章解释了如何使用配置文件来配置核心组件。配置 log4j 包括在配置文件中分配级别、定义 Appender 和指定 Layout 对象。
log4j.properties 文件是 log4j 的配置文件,它以键值对的形式保存属性。默认情况下,LogManager 在CLASSPATH中查找名为log4j.properties的文件。
根日志记录器的级别定义为DEBUG。DEBUG将名为 X 的 appender 附加到它。
将名为 X 的 appender 设置为有效的 appender。
为 appender X 设置布局。
log4j.properties 语法
以下是log4j.properties文件为 appender X 的语法
# Define the root logger with appender X log4j.rootLogger = DEBUG, X # Set the appender named X to be a File appender log4j.appender.X=org.apache.log4j.FileAppender # Define the layout for X appender log4j.appender.X.layout=org.apache.log4j.PatternLayout log4j.appender.X.layout.conversionPattern=%m%n
log4j.properties 示例
使用以上语法,我们在log4j.properties文件中定义以下内容
根日志记录器的级别定义为DEBUG,DEBUG将名为FILE的 appender 附加到它。
Appender FILE 定义为 org.apache.log4j.FileAppender。它写入位于log目录中的名为log.out的文件。
定义的布局模式为%m%n,这意味着打印的日志消息后面将跟一个换行符。
# Define the root logger with appender file log4j.rootLogger = DEBUG, FILE # Define the file appender log4j.appender.FILE=org.apache.log4j.FileAppender log4j.appender.FILE.File=${log}/log.out # Define the layout for file appender log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.conversionPattern=%m%n
需要注意的是,log4j 支持 UNIX 风格的变量替换,例如 ${variableName}。
调试级别
我们对两个 appender 都使用了 DEBUG。所有可能的选项是
- TRACE
- DEBUG
- INFO
- WARN
- ERROR
- FATAL
- ALL
这些级别将在本教程的后面部分进行解释。
Appender
Apache log4j 提供了 Appender 对象,这些对象主要负责将日志消息打印到不同的目标,例如控制台、文件、套接字、NT 事件日志等。
每个 Appender 对象都与其关联的不同属性,这些属性指示该对象的行为。
属性 | 描述 |
---|---|
layout | Appender 使用 Layout 对象及其关联的转换模式来格式化日志信息。 |
target | 目标可以是控制台、文件或其他项目,具体取决于 appender。 |
level | 级别是控制日志消息过滤所必需的。 |
threshold | Appender 可以具有与其关联的阈值级别,独立于日志记录器级别。Appender 会忽略任何级别低于阈值级别的日志消息。 |
filter | Filter 对象可以分析超出级别匹配的日志信息,并决定特定 Appender 是否应该处理日志请求或忽略日志请求。 |
我们可以通过在配置文件中包含以下设置,并使用以下方法将 Appender 对象添加到 Logger
log4j.logger.[logger-name]=level, appender1,appender..n
您可以按照以下方式以 XML 格式编写相同的配置
<logger name="com.apress.logging.log4j" additivity="false"> <appender-ref ref="appender1"/> <appender-ref ref="appender2"/> </logger>
如果您希望在程序中添加 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,并在数据库日志中介绍 JDBC Appender。
Layout
我们对 appender 使用了 PatternLayout。所有可能的选项是
- DateLayout
- HTMLLayout
- PatternLayout
- SimpleLayout
- XMLLayout
使用 HTMLLayout 和 XMLLayout,您还可以生成 HTML 和 XML 格式的日志。
Layout 格式化
您将在章节日志格式化中学习如何格式化日志消息。