log4j配置

上一章介紹log4j的核心組件。本章介紹如何使用配置文件來配置這些核心組件。配置log4j涉及分配級別,定義追加程序,並在配置文件中指定佈局的對象。

log4j.properties文件是一個鍵 - 值對保存 log4j 配置屬性文件。默認情況下,日誌管理在CLASSPATH 查找一個名爲 log4j.properties 的文件。

  • 根日誌記錄器的級別定義爲DEBUG並連接附加器命名爲X到它

  • 設置名爲X的附加目的地是一個有效的appender

  • 設置佈局的附加器X

log4j.properties 語法:

以下是 log4j.properties 文件的一個appender X的語法:

# 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 文件如下:

  • 根日誌記錄器(logger)的級別定義爲DEBUG並連接附加器命名爲FILE

  • 附加器(appender)File是定義爲org.apache.log4j.FileAppender並寫入到一個名爲「log.out」位於日誌log目錄下

  • 定義的佈局模式是%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兩個追加程序。所有可能的選項有:

  • TRACE

  • DEBUG

  • INFO

  • WARN

  • ERROR

  • FATAL

  • ALL

這些級別將在 Log4j調試級別 這一文章中解釋

Appenders:

Apache的log4j提供Appender對象主要負責打印日誌消息到不同的目的地,如控制檯,文件,sockets,NT事件日誌等等。

每個Appender對象具有與之相關聯的不同的屬性,並且這些屬性表明對象的行爲

屬性

描述

layout

Appender使用佈局Layout 對象和與之相關的格式化的日誌記錄信息轉換模式

target

目標可以是一個控制檯,一個文件,或根據附加器的另一個項目

level

級別是必需的,以控制日誌消息的過濾

threshold

Appender可以有與之獨立的記錄器級別相關聯的級別閾值水平。Appender忽略具有級別低於閾級別的任何日誌消息

filter

Filter 對象可以分析超出級別的匹配記錄信息,並決定是否記錄的請求應該由一個特定 Appender 或忽略處理

可以通過包括以下方法的配置文件中的下面設置一個 Appender 對象添加到記錄器:

log4j.logger.[logger-name]=level, appender1,appender..n

可以編寫以XML格式相同的結構如下:

如果想要添加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

我們將涵蓋 FileAppender文件 和 JDBCAppender 記錄將被包括記錄在數據庫

Layout:

我們使用的PatternLayout 使用 appender。所有可能的選項有:

  • DateLayout
  • HTMLLayout
  • PatternLayout
  • SimpleLayout
  • XMLLayout

使用HTMLLayout和XMLLayout,可以在HTML和XML格式和生成日誌。

佈局格式:

如何在章節格式的日誌信息:Log格式