📅  最后修改于: 2021-01-06 09:13:45             🧑  作者: Mango
Log4j提供了Appender对象,这些对象主要负责将日志消息打印到不同的目的地,例如控制台,文件,NT事件日志,Swing组件,JMS,远程UNIX syslog守护程序,套接字等。
每个追加器对象都有与之相关的不同属性,这些属性指定该对象的行为。
Property | Description |
---|---|
layout | Appender uses the Layout objects and the conversion pattern associated with them to format the logging information. |
target | The target may be a file, a console, or another item depending on the appender. |
level | It is necessary to control the filtration of the log messages. |
threshold | Appender can contain a threshold level associated with it independent of the logger level. The Appender ignores any logging messages that contain a level lower than the threshold level. |
filter | The Filter objects can read logging information beyond level matching and decide whether logging requests should be handled by a particular Appender or ignored. |
通过使用给定方法在配置文件中添加以下设置,我们可以将Appender对象添加到Logger。
log4j.logger.[logger-name]=level, appender1,appender..n
我们还可以使用XML格式编写相同的配置,如下所示:
甚至我们也可以在程序内部添加Appender对象,然后可以使用以下方法:
public void addAppender(Appender appender);
addAppender()方法用于将Appender添加到Logger对象。我们可以用逗号分隔的列表将许多Appender对象添加到记录器,每个记录器将记录信息打印到单独的目的地。
我们有一个附录列表。这些是:
其他是:
让我们看看常用的ConsoleAppender和RollingFileAppender类的基于XML的配置:
让我们看一个简单的示例,该示例显示通过属性文件(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