📜  log4j-配置

📅  最后修改于: 2020-11-12 05:50:17             🧑  作者: Mango


上一章介绍了log4j的核心组件。本章说明如何使用配置文件配置核心组件。配置log4j涉及分配级别,定义Appender以及在配置文件中指定Layout对象。

log4j.properties文件是一个log4j配置文件,用于将属性保留为键值对。默认情况下,LogManager在CLASSPATH中查找名为log4j.properties的文件。

  • 根记录器的级别定义为DEBUGDEBUG将名为X的附加程序附加到它。

  • 将名为X的附加程序设置为有效的附加程序。

  • 设置附加器X的布局。

log4j.properties语法:

以下是附加程序X的log4j.properties文件的语法:

# 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 ,其名称为FILEDEBUG附加程序。

  • 追加文件FILE定义为org.apache.log4j.FileAppender 。它将写入位于日志目录中的名为log.out的文件。

  • 所定义的布局图案是%米%正的,这意味着该印刷日志消息之后,将一个新行字符。

# 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}。

调试级别

我们已经将DEBUG与这两个追加程序一起使用。所有可能的选项是:

  • 跟踪
  • 调试
  • 信息
  • 警告
  • 错误
  • 致命
  • 所有

这些级别将在本教程的后面部分进行说明。

追加者

Apache log4j提供了Appender对象,这些对象主要负责将日志消息打印到不同的目的地,例如控制台,文件,套接字,NT事件日志等。

每个Appender对象都有与之关联的不同属性,这些属性指示该对象的行为。

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 console, a file, or another item depending on the appender.
level The level is required to control the filtration of the log messages.
threshold Appender can have a threshold level associated with it independent of the logger level. The Appender ignores any logging messages that have a level lower than the threshold level.
filter The Filter objects can analyze 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对象添加到以逗号分隔的列表中的记录器中,每个记录器将打印信息记录到单独的目的地。

在上面的示例中,我们仅使用了一个追加程序FileAppender 。所有可能的附加程序选项为:

  • Appender骨骼
  • AsyncAppender
  • ConsoleAppender
  • DailyRollingFileAppender
  • ExternallyRolledFileAppender
  • FileAppender
  • JDBCAppender
  • JMSAppender
  • LF5Appender
  • NTEventLogAppender
  • NullAppender
  • RollingFileAppender
  • SMTPAppender
  • SocketAppender
  • SocketHubAppender
  • SyslogAppender
  • TelnetAppender
  • WriterAppender

我们将在“登录文件”中介绍FileAppender,并在“登录数据库”中介绍JDBC Appender。

布局

我们已将PatternLayout与我们的附加程序一起使用。所有可能的选项是:

  • 日期布局
  • HTMLLayout
  • 模式布局
  • 简单版式
  • XML布局

使用HTMLLayout和XMLLayout,您还可以生成HTML和XML格式的日志。

布局格式

您将学习如何格式化章日志消息:日志格式