log4j - HTML 佈局



如果您想以 HTML 格式的檔案生成日誌資訊,則可以使用 org.apache.log4j.HTMLLayout 來格式化日誌資訊。

HTMLLayout 類擴充套件了抽象的 org.apache.log4j.Layout 類,並覆蓋了其基類的 format() 方法以提供 HTML 樣式的格式。

它提供以下資訊進行顯示

  • 生成特定日誌事件之前應用程式啟動後經過的時間。

  • 呼叫日誌請求的執行緒的名稱。

  • 與此日誌請求關聯的級別。

  • 日誌記錄器和日誌訊息的名稱。

  • 程式檔案和呼叫此日誌記錄的行號的可選位置資訊。

HTMLLayout 是一個非常簡單的 Layout 物件,它提供了以下方法

序號 方法和描述
1 setContentType(String)

設定 text/html HTML 內容的內容型別。預設值為 text/html。

2 setLocationInfo(String)

設定日誌事件的位置資訊。預設為 false。

3 setTitle(String)

設定 HTML 檔案的標題。預設為 log4j 日誌訊息。

HTMLLayout 示例

以下是 HTMLLayout 的一個簡單配置檔案

# Define the root logger with appender file
log = /usr/home/log4j
log4j.rootLogger = DEBUG, FILE

# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}/htmlLayout.html

# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.HTMLLayout
log4j.appender.FILE.layout.Title=HTML Layout Example
log4j.appender.FILE.layout.LocationInfo=true

現在考慮以下 Java 示例,它將生成日誌資訊

import org.apache.log4j.Logger;

import java.io.*;
import java.sql.SQLException;
import java.util.*;

public class log4jExample{
   /* Get actual class name to be printed on */
   static Logger log = Logger.getLogger(log4jExample.class.getName());
   
   public static void main(String[] args)throws IOException,SQLException{
      log.debug("Hello this is an debug message");
      log.info("Hello this is an info message");
   }
}

編譯並執行上述程式。它將在 /usr/home/log4j 目錄中建立一個 htmlLayout.html 檔案,其中包含以下日誌資訊

日誌會話開始時間 2010 年 3 月 22 日星期一 13:30:24 AST

時間 執行緒 級別 類別 檔案:行號 訊息
0 main DEBUG log4jExample log4jExample.java:15 Hello this is an debug message
6 main INFO log4jExample log4jExample.java:16 Hello this is an info message

您可以使用 Web 瀏覽器開啟 htmlLayout.html 檔案。還需要注意的是,</html> 和 </body> 標記的頁尾完全缺失。

將日誌檔案以 HTML 格式儲存的一個主要優勢是可以將其釋出為網頁以進行遠端檢視。

log4j_log_formatting.htm
廣告

© . All rights reserved.