1. 程式人生 > >《Log4j 2官方文件》 Configuration Syntax

《Log4j 2官方文件》 Configuration Syntax

配置語法

正如之前的例子所展示的一樣,Log4j允許你簡單地重新定義記錄日誌的行為而不需要去修改你的應用。可以禁用應用程式的某些部分的日誌記錄,只在滿足特定標準時記錄日誌,例如為特定使用者執行的操作,路由輸出到Flume或者日誌系統。要想實現這些東西必須先理解這個配置檔案的語法。

配置在xml裡面的元素接受這幾個屬性:
元素名稱和描述

  • advertiser (可選)用於通知單個FileAppender或SocketAppender配置的外掛名稱。唯一提供的Adverti ser外掛是”multicastdns”。
  • dest 要麼”err”,它將輸出傳送到stderr,或檔案路徑或URL。
  • monitorInterval 檢查檔案配置更改之前必須經過的最短時間(以秒為單位)。
  • name 配置的名稱
  • packages 以逗號分隔的包名稱列表,用於搜尋外掛。每個類載入器只加載一次外掛,因此更改此值可能對重 新配置沒有任何影響。
  • schema 標識類載入器找到用於驗證配置的XML模式的位置。僅當strict設定為true時有效。如果未設定, 將不會發生模式驗證。
  • shutdownHook 不管確認與否,Log4j將會自動關閉當JVM關閉的時候。這個關閉hook預設是可用的,可以通過設定屬 性為”disable”來禁用。
  • status 內部的log4j事件等級會被輸出到控制檯上。有效的屬性值分為”trace”, “debug”, “info”, “warn”, “error” 和 “fatal”。Log4j將會把初始化,回滾和其他內部活動記錄到狀態記錄器裡。設 置status=”trace”是其中一種提供的第一件工具,如果你需要解決這個log4j的問題。
  • strict 啟用嚴格的XML語法使用。在JSON的配置裡不支援。
  • verbose 在載入外掛時啟用診斷資訊。

Log4j可以使用兩種XML風格進行配置;簡潔和嚴謹。簡潔的格式使配置很容易,因為元素名稱匹配它們表示的元件,但是它不能用XML模式驗證。例如,ConsoleAppender通過在其父appenders元素下宣告名為Console的XML元素來配置。但是,元素和屬性名稱不區分大小寫。此外,屬性可以指定為XML屬性,也可以指定為沒有屬性且具有文字值的XML元素。所以

<PatternLayout pattern=”%m%n”/>

<PatternLayout>
<Pattern>%m%n</Pattern>
</PatternLayout>
是相等的。

下面的檔案表示XML配置的結構,注意,下面的斜體元素表示將出現在其位置的簡化元素名稱。

<?xml version="1.0" encoding="UTF-8"?>;
<Configuration>
<Properties>
<Property name="name1">value</property>
<Property name="name2" value="value2"/>
</Properties>
<filter ... />
<Appenders>
<appender ... >
<filter ... />
</appender>
...
</Appenders>
<Loggers>
<Logger name="name1">
<filter ... />
</Logger>
...
<Root level="level">
<AppenderRef ref="name"/>
</Root>
</Loggers>
</Configuration>

可以在本頁面裡的sample appender, filter 和 logger declarations。檢視更多的例子。