本文概述
- Log4j Appender XML配置
- Log4j Appender属性配置
每个追加器对象都有与之相关的不同属性, 这些属性指定该对象的行为。
Property | Description |
---|---|
layout | Appender使用Layout对象和与其关联的转换模式来格式化日志信息。 |
target | 根据附加程序, 目标可以是文件, 控制台或其他项目。 |
level | 有必要控制日志消息的过滤。 |
threshold | Appender可以包含与之关联的阈值级别, 而与记录器级别无关。 Appender忽略任何包含低于阈值级别的日志消息。 |
filter | Filter对象可以读取级别匹配之外的日志记录信息, 并决定是应由特定的Appender处理还是应忽略日志记录请求。 |
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对象添加到记录器, 每个记录器将记录信息打印到单独的目的地。
我们有一个附录列表。这些是:
- ConsoleAppender:Console Appender使用用户指定的布局将日志事件附加到System.out或System.err。 System.out是默认目标。它可用于调试目的, 但在生产环境中使用却无济于事。
- FileAppender:将日志事件追加到文件。它支持另外两个附加器类:
- RollingFileAppender, DailyRollingFileAppender:两者都是使用最广泛的附加程序, 它们提供将日志写入文件的支持。
- JDBCAppender:JDBCAppender用于将日志事件发送到数据库。每个追加调用将添加到ArrayList缓冲区。当缓冲区已满时, 每个日志事件都将放置在SQL语句中并执行。
- SMTPAppender:用于在发生特定的日志记录事件时发送电子邮件, 通常发生错误或致命错误时。
- SocketAppender:用于远程存储。
- SyslogAppender:它将消息发送到远程syslog域。
- TelnetAppender:它专门写给只读套接字。
- WriterAppender:用于根据用户的选择将日志事件追加到Writer或OutputStream。
- AsyncAppender:AsyncAppender允许用户异步记录事件。 AsyncAppender将保存发送给它的事件, 然后将它们分派到所有附加到它的附加程序。我们可以将多个附加程序附加到AsyncAppender。
- JMSAppender:一个简单的附加程序, 它将事件发布到JMS(Java消息服务)主题。事件被序列化并作为JMS消息类型ObjectMessage传输。
- Appender骨骼
- LF5Appender
- NTEventLogAppender
- NullAppender
- SocketHubAppender
- ExternallyRolledFileAppender
<
!-- console appender -->
<
appender name="console" class="org.apache.log4j.ConsoleAppender">
<
param name="Target" value="http://www.srcmini.com/System.out" />
<
layout class="org.apache.log4j.PatternLayout">
<
param name="ConversionPattern" value="http://www.srcmini.com/%-5p %c{1} - %m%n" />
<
/layout>
<
/appender>
<
!-- rolling file appender -->
<
appender name="file" class="org.apache.log4j.RollingFileAppender">
<
param name="File" value="http://www.srcmini.com/logs/main.log" />
<
param name="Append" value="http://www.srcmini.com/true" />
<
param name="ImmediateFlush" value="http://www.srcmini.com/true" />
<
param name="MaxFileSize" value="http://www.srcmini.com/10MB" />
<
param name="MaxBackupIndex" value="http://www.srcmini.com/5" />
<
layout class="org.apache.log4j.PatternLayout">
<
param name="ConversionPattern" value="http://www.srcmini.com/%d %d{Z} [%t] %-5p (%F:%L) - %m%n" />
<
/layout>
<
/appender>
Log4j Appender属性配置【Log4j日志Appenders解释】让我们看一个简单的示例, 该示例显示通过属性文件(log4j.properties)的追加程序配置。它定义了以上基于xml的配置:
#Define console appender
log4j.appender.console=org.apache.log4j.ConsoleAppender
logrj.appender.console.Target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-5p %c{1} - %m%n#Define rolling file appender
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=logs/main.log
log4j.appender.file.Append=true
log4j.appender.file.ImmediateFlush=true
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=5
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d %d{Z} [%t] %-5p (%F:%L) - %m%n
推荐阅读
- Log4j Maven配置
- Log4j-PatternLayout日志
- Log4j属性详细解释
- Log4J日志文件
- 2022全新版!Java分布式架构设计与开发实战一起fen享
- 【JAVA基础】== 与 equals区别
- 在.NET Core console application中使用User Secrets(用户机密)
- Android Studio 导入 Eclipse项目 报 Some file crunching failed, see logs for details
- App测试从入门到精通之界面测试