天天看點

《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配置的結構,注意,下面的斜體元素表示将出現在其位置的簡化元素名稱。

<code>&lt;?xml version="1.0" encoding="utf-8"?&gt;; &lt;configuration&gt; &lt;properties&gt; &lt;property name="name1"&gt;value&lt;/property&gt; &lt;property name="name2" value="value2"/&gt; &lt;/properties&gt; &lt;filter ... /&gt; &lt;appenders&gt; &lt;appender ... &gt; &lt;filter ... /&gt; &lt;/appender&gt; ... &lt;/appenders&gt; &lt;loggers&gt; &lt;logger name="name1"&gt; &lt;filter ... /&gt; &lt;/logger&gt; ... &lt;root level="level"&gt; &lt;appenderref ref="name"/&gt; &lt;/root&gt; &lt;/loggers&gt; &lt;/configuration&gt;</code>

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