如果您希望以 HTML 格式输出日志文件,可使用 org.apache.Log4j.HTMLLayout 格式化日志信息。
HTMLLayout 继承自抽象类 org.apache.Log4j.Layout,覆盖了其 format() 方法来提供 HTML 格式。
它提供了如下信息以供显示:
从应用启动到日志产生之间经过的时间。
发起记录日志请求的线程名字。
和记录日志请求关联的级别。
logger 的名字和日志信息。
程序文件的位置信息和触发日志的行号,该信息是可选的。
HTMLLayout 是一种非常简单的 Layout 对象,它提供了如下方法:
序号
方法 & 描述
1
setContentType(String)
设置 HTML 的内容类型,默认为 text/html。
2
setLocationInfo(String)
设置日志事件的地域信息。
3
setTitle(String)
设置 HTML 文件的标题,默认为 Log4j Log Messages。
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 2010
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
您可以使用浏览器打开 htmlLayout.html 文件。需要注意的是末尾缺失了