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