IBM Enterprise Records, 版本 5.1.+            

配置 log4j.properties 檔

IBM® Enterprise Records 應用程式包括可供您配置的範例 log4j.properties 檔。

log4j.properties 檔位於 ier_install_path\RecordsManagerSweep 資料夾中,您可以在檔案中指定下列項目的值,以配置記載行為:

log4j.properties 檔中的每一個日誌程式都指派了一個層次。如果您沒有對日誌程式指派層次,log4j 會自動指派母項日誌程式層次給未指派的日誌程式。依預設,會將 WARN 層次指派給日誌程式。

您可以使用日誌程式、附加程式及佈置的不同設定來配置 log4j.properties 檔。 在執行時期,類別路徑中的 log4j.properties 檔必須可供應用程式使用。您可以在陳述式前加上井字號 (#),以註銷範例檔中的項目;在執行時期將不會執行標示井字號 (#) 的項目。

如果要開啟 log4j.properties 檔,請導覽至 ier_install_path\RecordsManagerSweep 資料夾,然後使用文字編輯器開啟檔案。

設定日誌程式和記載層次

您必須先設定日誌程式。您可以利用一些日誌程式將應用程式所需要的記載類型加以分類。如果要對 com.filenet.rm 的所有類別及其子套件啟用記載功能,請依照下列陳述式所示來指定日誌程式:

log4j.logger.com.filenet.rmor 

您可以為日誌程式指定任何名稱。例如,您可以依照下列陳述式所示,將日誌程式命名為 APILOG:

log4j.logger.com.filenet.rm=warn, APILOG

您必須設定記載層次,以建立 log4j 在執行時期所記錄之訊息的詳細層次。log4j 支援五個一般記載層次,如下表所示。

表 1. log4j 在執行時期所記錄的訊息層次
層次 說明
DEBUG 指定對於除錯應用程式最有用的精細參考事件。
INFO 指定以粗略層次強調顯示應用程式進度的參考訊息。
WARN 指定可能有害的狀況。
ERROR 指定可能仍然允許應用程式繼續執行的錯誤事件。
FATAL 指定可能導致應用程式中斷的重大錯誤事件。

如需特殊和自訂記載層次的相關資訊,請參閱 Apache 網站上的 log4j 說明文件。依預設,應用程式會在 WARN 層次啟動。 在執行時期可修改為 DEBUG、INFO、ERROR、WARN 或 FATAL 層次。您也可以併入數個日誌程式陳述式,分別代表不同層次的相同日誌程式(例如 DEBUG 代表一個,WARN 代表另一個)。您可以在陳述式前加上井字號 (#),以註銷範例檔中的其中一個項目,也可視需要在 DEBUG 和 WARN 層次之間切換。在執行時期將不會執行標示井字號 (#) 的項目。 沒有層次的日誌程式會自動繼承其母項日誌程式的層次。依預設,會將 WARN 層次指派給 IBM Enterprise Records 中的 RM API 日誌程式。

設定附加程式

為了讓日誌訊息能夠寫入輸出媒體,日誌程式會與一或多個附加程式相關聯。您可以在 log4j.properties 檔中設定用於將日誌資訊傳送到指定輸出位置的各種附加程式。 下表提供 log4j.properties 檔中使用的所有附加程式清單,及其簡要說明和相關選項。

表 2. 附加程式、說明和程式碼片段
附加程式 說明和程式碼片段
NTEventLogAppender

附加至 Microsoft Windows NT 事件日誌。這個附加程式只能在 Windows 系統上安裝及使用。

log4j.appender.APILOG=org.apache.log4j.nt.NTEventLogAppender
ConsoleAppender

利用使用者指定的佈置,將日誌訊息附加至 System.out(預設值)或 System.err 串流。

 log4j.appender.APILOG=org.apache.log4j.ConsoleAppender

選項:

  • Threshold=WARN:這個附加程式不會記載優先順序低於這裡所指定之優先順序的任何訊息,即使日誌程式的優先順序設成比較低也一樣。 例如,當在主控台顯示所有訊息時,這可以有效減少檔案日誌中的訊息數。
  • ImmediateFlush=true:預設值為 true,表示日誌訊息完全不置入緩衝區中。如果 ImmdiateFlush 設為 false,當應用程式發生問題時,最後幾個日誌事件可能不會寫入固定媒體中。建議設定為 true。
FileAppender

會將日誌訊息附加至檔案。

 log4j.appender.APILOG=org.apache.log4j.FileAppender

選項:

  • Threshold=WARN:這個附加程式不會記載優先順序低於這裡所指定之優先順序的任何訊息,即使日誌程式的優先順序設成比較低也一樣。 例如,當在主控台顯示所有訊息時,這可以有效減少檔案日誌中的訊息數。
  • ImmediateFlush=true:預設值為 true,表示日誌訊息完全不置入緩衝區中。如果 ImmdiateFlush 設為 false,當應用程式發生問題時,最後幾個日誌事件可能不會寫入固定媒體中。建議設定為 true。
  • File=mylog.txt:記載至的檔案名稱。您可以使用 ${some_property_key} (例如,java.home 或 user.home 系統內容)來指定路徑。
  • Append=false:預設值為 true,表示附加至檔案結尾。False 會在每個程式一開始執行時改寫檔案。
RollingFileAppender

延伸 FileAppender,以在日誌檔到達特定大小時加以備份。

 log4j.appender.APILOG=org.apache.log4j.RollingFileAppender

選項:

  • Threshold=INFO:這個附加程式不會記載優先順序低於這裡所指定之優先順序的任何訊息,即使日誌程式的優先順序設成比較低也一樣。 例如,當在主控台顯示所有訊息時,這可以有效減少檔案日誌中的訊息數。
  • ImmediateFlush=true:預設值為 true,表示日誌訊息完全不置入緩衝區中。如果 ImmdiateFlush 設為 false,當應用程式發生問題時,最後幾個日誌事件可能不會寫入固定媒體中。建議設定為 true。
  • File=mylog.txt:記載至的檔案名稱。您可以使用 ${some_property_key}(例如,java.home 或 user.home 系統內容)來指定前面的路徑。
  • Append=false:預設值為 true,表示附加至檔案結尾。false 會在每個程式一開始執行時改寫檔案。
  • MaxFileSize=100KB:字尾可以是 KB、MB 或 GB。到達這個大小之後便移轉日誌檔。Append 會採用布林值,以決定要改寫 (false) 或附加至 (true) 輸出檔。將此值設為 false(預設值)可防止檔案過度增長,對於偶爾執行一次的開發環境,建議您這麼做。將此值設為 true,會將輸出附加至每一次 JVM 執行時的現有日誌檔。 您可以設定 MaxFileSize 關鍵字來限制輸出檔的大小。比方說,如果以 MaxFileSize=128KB 和 MaxBackupIndex=1 配置輸出檔 cjapi_log.txt,當檔案超過 128 KB 時,其內容就會自動移至 cjapi_log.txt.1,並且繼續寫入空的 cjapi_log.txt.file。
  • MaxBackupIndex=2:最多維護 2 個(舉例來說)備份檔。會消除最舊的檔案。0 表示不保留任何備份檔。

設定佈置

您可以在指定日誌訊息格式的 log4j.properties 檔中設定不同的佈置。 您可以指定日誌訊息要包括日期、時間、模組名稱、執行緒名稱等。在執行時期記載訊息時會使用這些配置設定。

下表提供 IBM Enterprise Records log4j.properties 檔中使用的所有佈置清單,及其簡要說明和選項。

表 3. 佈置和說明
佈置 說明和程式碼片段
SimpleLayout

會列印「層次」,然後是橫線 (-),後面接著日誌訊息文字。

org.apache.log4j.SimpleLayout
PatternLayout

會根據指定的轉換型樣來格式化記載事件。轉換型樣由字面文字和轉換指定元所組成。 字面文字會依現狀輸出。轉換指定元由 % 字元後接選用格式修飾元和必要轉換字元所組成。 例如,%-5p [%t]:%m%n 是一個轉換型樣,由優先順序(也稱為層次)轉換指定元,後面接著字面文字 " [",再接著執行緒轉換指定元,再接著字面文字 "]: ",最後接著訊息轉換指定元和系統相依行分隔字元所組成。

org.apache.log4j.PatternLayout

選項:

  • ConversionPattern=%-5p, [%t]:%m%n:如何格式化每一個日誌訊息(要包括哪些資訊)。
HTMLLayout

會將輸出格式化成 HTML 表格。

org.apache.log4j.HTMLLayout

選項:

  • LocationInfo=true:輸出 Javaâ 檔名和行號。預設值為 false。
  • Title=My app title:設定 HTML 的 <title> 標籤。預設值為 Log4J 日誌訊息。
 

將輸出格式化成 XML。

org.apache.log4j.xml.XMLLayout

選項:

  • LocationInfo=true:輸出 Java 檔名和行號。預設值為 false。

IBM Enterprise Records 所提供的 log4j.properties 檔,會將 PatternLayout 用於日誌訊息格式。 下表提供可在配置檔中宣告的轉換型樣清單及其簡要說明:

表 4. 轉換型樣和說明
型樣 說明
%t 提出日誌要求的執行緒名稱
%c 與日誌要求相關聯的日誌程式名稱
%-60c 在 60 個空格內,向左對齊日誌程式名稱
%r 自啟動應用程式後所經歷的毫秒數
%p 日誌陳述式的層次
%m 訊息
%Time 發生記載的時間
%d 記載事件的日期
%n 換行

下列程式碼陳述式顯示如何啟用 PatternLayout 及指定簡單轉換型樣:

log4j.appender.APILOG.layout=org.apache.log4j.PatternLayout
log4j.appender.APILOG.layout.ConversionPattern=%-5p %d {dd MMM yyyy HH:mm:ss,SSS}, -%m, %r, [%M] % n

例如:

WARN, 20 Jun 2005 14:48:20,900, -[enter] getObjectStoreXML(ObjectStores), 102042, [setLoggerMessage]
WARN, 20 Jun 2005 14:48:21,100, -[exit] getObjectStoreXML(ObjectStores), 102342, [setLoggerMessage]


意見

前次更新: 2011 年 8 月


© Copyright IBM Corp. 2011.
此資訊中心採用 Eclipse 技術。(http://www.eclipse.org)