Log4j Appenders2024 年 8 月 29 日 | 阅读 3 分钟 Log4j 提供了 Appender 对象,这些对象主要负责将日志消息打印到不同的目标,例如控制台、文件、NT 事件日志、Swing 组件、JMS、远程 UNIX syslog 守护程序、套接字等。 每个 appender 对象都有与其相关的不同属性,这些属性指定了该对象的行为。 属性 | 描述 |
---|
layout | Appender 使用 Layout 对象及其相关的转换模式来格式化日志信息。 | target (目标) | 目标可以是文件、控制台或其他项目,具体取决于 appender。 | level | 有必要控制日志消息的过滤。 | threshold | Appender 可以包含一个与 logger 级别无关的阈值级别。Appender 会忽略任何包含低于阈值级别的日志消息。 | filter | Filter 对象可以读取超过级别匹配的日志信息,并决定日志请求是否应由特定的 Appender 处理或忽略。 |
我们可以通过在配置文件中添加以下设置以及给定方法,将一个 Appender 对象添加到 Logger 中。 我们也可以按如下方式用 XML 格式编写相同的配置 甚至我们也可以在程序中添加 Appender 对象,然后我们可以使用以下方法 addAppender() 方法用于将一个 Appender 添加到 Logger 对象。我们可以在一个以逗号分隔的列表中向一个 logger 添加多个 Appender 对象,每个对象将日志信息打印到不同的目标。 我们有一个 appender 列表。这些是 - ConsoleAppender: Console Appender 使用用户指定的 layout 将日志事件追加到 System.out 或 System.err。System.out 是一个默认目标。它对于调试目的很有用,但在生产环境中不太有用。
- FileAppender: 将日志事件追加到文件。它支持另外两个 appender 类
- RollingFileAppender, DailyRollingFileAppender: 两者都是应用最广泛的 appender,它们提供对写入文件的日志的支持。
- JDBCAppender: JDBCAppender 用于将日志事件发送到数据库。每个追加调用都添加到 ArrayList 缓冲区。当缓冲区填满时,每个日志事件都放在一个 SQL 语句中并执行。
- SMTPAppender: 当发生特定日志事件(通常是错误或致命错误)时,它用于发送电子邮件。
- SocketAppender: 它用于远程存储。
- SyslogAppender: 它将消息发送到远程 syslog 域。
- TelnetAppender: 它专门用于写入只读套接字。
- WriterAppender: 它用于根据用户的选择将日志事件追加到 Writer 或 OutputStream。
- AsyncAppender: AsyncAppender 允许用户异步记录事件。AsyncAppender 将保存发送给它的事件,然后将它们分发给所有附加到它的 appender。我们可以将多个 appender 附加到一个 AsyncAppender。
- JMSAppender: 一个简单的 appender,它将事件发布到 JMS(Java 消息服务)主题。事件被序列化并作为 JMS 消息类型 ObjectMessage 传输。
其他是 - AppenderSkeleton
- LF5Appender
- NTEventLogAppender
- NullAppender
- SocketHubAppender
- ExternallyRolledFileAppender
Log4j Appender XML 配置让我们看看常用 ConsoleAppender 和 RollingFileAppender 类的基于 XML 的配置 Log4j Appender 属性配置让我们看一个简单的示例,展示通过属性文件 (log4j.properties) 进行 appender 配置。它定义了上述基于 xml 的配置
|