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格式