log4j教程
log4j技术
log4j案例
Log4j2技术
log42j案例
Logback技术
Logback案例

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格式的日志文件的一大优势是,它可以被发布为网页可以远程查看。