使用log4j进行日志管理

9年前

1Log4j简介

作用:

1、 跟踪代码的运行轨迹。

2、 输出调试信息.

三大组成:

1、 Logger-生成日志。

2、 Appender-定义日志输出的目的地。

3、 Layout-指定日志输出的格式。

1.1 Logger组件

日志共分为5种级别,从高到底(从严重到轻微)排序为:

FATAL严重的错误,可能会导致程序不能正常运行.

ERROR  错误,影响程序的正常运行。

WARN  警告,不会影响程序的运行。最好将此问题修正。

INFO  一般信息。不影响程序的运行。可能是用户的调试信息。可有可无。等同于syserr

DEBUG  一般的信息。等同于sysout

上面五种级别分别对应以下几个方法 P255

fatal(Object)

error(Object)

warn(Object)

info(Object)

debug(Object)

当信息大于或是等于配置的级别时才会输出日志

1.2Appender组件

(仅要求记住两个)

Console  控制台。org.apache.log4j.ConsoleAppender

File    - 文件。  org.apache.log4j.FileAppender , org.apache.log4j.RollingFileAppender

1.3Layout组件

功能是定义日志的输出格式

org.apache.log4j.HTMLLayout

org.apache.log4j.PatternLayout (自定义)

org.apache.log4j.SimpleLayout

对于自定义格式,see page 256 chart 17-1

%d %p %c %m%n是我经常用的格式,要求记住.

%d  具体的时间.

%p  优先级

%c  信息的输入类

%m%n  信息文本

2Log4j的基本使用方法

(以下以项目ch16为例)

1、将log4j.jar文件,CopyWEB-INF/lib目录下。

(此时发布程序,启动程序,会发出警告信息。信息要求配置log4j.properties文件)

2、在src目录下(即WEB-INF/classes)建立一个log4j.properties文件

WEB-INF/classes目录下,为log4j的默认目录。Log4j.properties也是log4j的默认文件名。

3、书写log4j.properties文件如下:

#####配置根元素

log4j.rootLogger=INFO,file,console

#file的输入地址为文件

log4j.appender.file=org.apache.log4j.RollingFileAppender

#以下是具体的目录

log4j.appender.file.File=d:/a.log

#每个文件的最大大小

log4j.appender.file.MaxFileSize=512KB

#最多可以是多少个文件

log4j.appender.file.MaxBackupIndex=3

#信息的布局格式-按指定的格式打出

log4j.appender.file.layout=org.apache.log4j.PatternLayout

#具体的布局格式 - %d为时间

log4j.appender.file.layout.ConversionPattern=%d %p [%c] %m%n

#以下配置输出到控制台

log4j.appender.console=org.apache.log4j.ConsoleAppender

log4j.appender.console.layout=org.apache.log4j.PatternLayout

log4j.appender.console.layout.ConversionPattern=%d %p [%c] %m%n

####以下配置自己的类输出日志的信息,即将com.three包下的日志输出到的目录

###同时也会打出到控制台。尽管是没有配置打出到控制台。但依据log4j的继承性,它仍然具体打出的控制台的功能。

log4j.category.com.three=INFO,myFile

log4j.appender.myFile=org.apache.log4j.RollingFileAppender

log4j.appender.myFile.File=d:/b.txt

log4j.appender.myFile.layout=org.apache.log4j.PatternLayout

log4j.appender.myFile.layout.ConversionPattern=%d %p [%c] %m%n

具体的说明,请参考上面以#号注释的部分。

注意上面红体字下面的部分,是书上没有讲的。此部分只配置对com.three包下的类指出日志信息。掌握具体配置的方法。

4、书写自已的类,并在自己的类中使用日志

package com.three;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;

import org.apache.struts.action.Action;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

/**

 * 打出日志信息的类

 * @author<b>wangjian_me@126.com</b>

 * @version 1.0,2008-5-4

 */

public class ThreeAction extends Action{

//获取log对像

Logger log = Logger.getLogger(ThreeAction.class);

public ActionForward execute(ActionMapping mapping,

 ActionForm form,

 HttpServletRequest req,

 HttpServletResponse rep){

log.info("Hello...我使用log打出的信息");

return mapping.findForward("success");

}

}

说明:请注意上面是如何获取log对橡的。

5、配置上面的Action

此部分说明了,如何配置多个struts的配置文件的方法,请了解。

上机内容:

1、 书写自己的log4j.properties文件。

2、 只输出com.edu.sdxh包下的所有类的日志的信息的配置方法。