使用log4j進行日志管理

張玲 11年前發布 | 190 次閱讀 Socket通信

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包下的所有類的日志的信息的配置方法。

 本文由用戶 張玲 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!