1. 程式人生 > >使用log4j進行日誌管理

使用log4j進行日誌管理

基本使用 return 自定義 jar trac mil bsp family ogg

17.1Log4j簡介

作用:

1、 跟蹤代碼的運行軌跡。

2、 輸出調試信息.

三大組成:

1、 Logger-生成日誌。

2、 Appender-定義日誌輸出的目的地。

3、 Layout-指定日誌輸出的格式。

17.1.1 Logger組件

日誌共分為5種級別,從高到底(從嚴重到輕微)排序為:

FATAL嚴重的錯誤,可能會導致程序不能正常運行.

ERROR 錯誤,影響程序的正常運行。

WARN 警告,不會影響程序的運行。最好將此問題修正。

INFO 一般信息。不影響程序的運行。可能是用戶的調試信息。可有可無。等同於syserr

DEBUG 一般的信息。等同於

sysout

上面五種級別分別對應以下幾個方法 P255

fatal(Object)

error(Object)

warn(Object)

info(Object)

debug(Object)

Trace(跟蹤)

當信息大於或是等於配置的級別時才會輸出日誌

17.1.2Appender組件

(僅要求記住兩個)

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

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

17.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 信息文本

17.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;

/**

* 打出日誌信息的類

* @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");

使用log4j進行日誌管理