log4j HTMLLayout

如果想生成一個HTML格式的文件,日誌信息,那麼可以使用 org.apache.log4j.HTMLLayout 格式化日誌信息。

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

這提供了以下信息顯示:

  • 生成特定的日誌事件之前,從應用程序的開始所經過的時間

  • 調用該記錄請求的線程的名稱

  • 與此記錄請求相關聯的級別

  • 日誌記錄器(Logger)和記錄消息的名稱

  • 可選程序文件的位置信息,並從其中記錄被調用的行號

HTMLLayout是一個非常簡單的佈局對象,它提供以下方法:

S.N.

方法 & 描述

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 文件,該文件將有如下的日誌信息:

Log session start time Mon Mar 22 13:30:24 AST 2014

Time

Thread

Level

Category

File:Line

Message

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格式的日誌文件的一大優勢是,它可以被髮布爲網頁可以遠程查看。