log4j如何使用配置文件來配置核心組件。log4j配置涉及分配級別,定義追加程序,并在配置文件中指定布局的對象。
log4j.properties文件是一個鍵 - 值對保存 log4j 配置屬性文件。默認情況下,日志管理在CLASSPATH 查找一個名為 log4j.properties 的文件。
根日志記錄器的級別定義為DEBUG并連接附加器命名為X到它
設置名為X的附加目的地是一個有效的appender
設置布局的附加器X
以下是 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 文件如下:
根日志記錄器(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調試級別 這一文章中解釋
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 記錄將被包括記錄在數據庫
我們使用的PatternLayout 使用 appender。所有可能的選項有:
使用HTMLLayout和XMLLayout,可以在HTML和XML格式和生成日志。
如何在章節格式的日志信息:Log格式