log4j| log4j-配置

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

log4j.properties文件是一个log4j的配置文件其中保持在键-值对的特性。默认情况下,LogManager 在CLASSPATH中查找名为log4j.properties的文件。

  • 根日志记录器(root)的级别定义为DEBUG,并连接附加器命名为X到它
  • 设置名为X的附加程序是一个有效的Appender
  • 设置名为X的附加程序的布局。

log4j.properties语法:

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

# 使用附加程序X定义根记录器,并将根记录器的日志级别设置成DEBUG级别
log4j.rootLogger = DEBUG, X

# 将名为X的附加程序 设置为文件附加程序FileAppender
log4j.appender.X=org.apache.log4j.FileAppender

# 定义名为X的附加程序的布局
log4j.appender.X.layout=org.apache.log4j.PatternLayout
log4j.appender.X.layout.conversionPattern=%m%n

log4j.properties示例

使用以上语法,我们在log4j.properties文件中定义以下内容:

  • 根记录器的级别定义为DEBUG,其名称为FILE的附加程序。
  • 为名为FILE的附加程序定义文件追加器org.apache.log4j.FileAppender。它将写入位于日志目录中的名为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}


Debug Level(调试级别)

上面我们已经给两个附加程序的追加器定义为DEBUG的 日志级别了。它的所有可能的选项如下:

  • TRACE (跟踪)
  • DEBUG (调试)
  • INFO (信息)
  • WARN (警告)
  • ERROR (错误)
  • FATAL (致命)
  • ALL (所有)

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


Appenders(追加者)

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

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

属性 描述
layout(布局) Appender使用Layout对象和与其关联的转换模式来格式化日志信息。
target(目标) 根据附加程序,目标可以是控制台,文件或其他项目。
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对象添加到以逗号分隔的列表中的记录器中,每个记录器将打印日志信息打印到单独的目的地。

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

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

我们将在log4j - 日志记录到文件中介绍FileAppender,并在登录数据库中介绍JDBC Appender 。


Layout(布局)

上面我们已将局PatternLayout(模式布)与我们的附加程序(Appender)一起使用。它所有可能的选项是:

  • DateLayout (日期布局)
  • HTMLLayout (HTMLLayout)
  • PatternLayout (模式布局)
  • SimpleLayout (简单版式)
  • XMLLayout (XML布局)

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


Layout Formatting(布局格式)

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

发布了457 篇原创文章 · 获赞 147 · 访问量 43万+

猜你喜欢

转载自blog.csdn.net/u011479200/article/details/102461883