使用log4j進行日誌管理
17.1、Log4j簡介
作用:
1、 跟蹤代碼的運行軌跡。
2、 輸出調試信息.
三大組成:
1、 Logger類-生成日誌。
2、 Appender類-定義日誌輸出的目的地。
3、 Layout類-指定日誌輸出的格式。
17.1.1 Logger組件
日誌共分為5種級別,從高到底(從嚴重到輕微)排序為:
FATAL—嚴重的錯誤,可能會導致程序不能正常運行.
ERROR – 錯誤,影響程序的正常運行。
WARN – 警告,不會影響程序的運行。最好將此問題修正。
INFO – 一般信息。不影響程序的運行。可能是用戶的調試信息。可有可無。等同於syserr
DEBUG – 一般的信息。等同於
上面五種級別分別對應以下幾個方法 P255
fatal(Object)
error(Object)
warn(Object)
info(Object)
debug(Object)
Trace(跟蹤)
當信息大於或是等於配置的級別時才會輸出日誌。
17.1.2、Appender組件
(僅要求記住兩個)
Console – 控制臺。org.apache.log4j.ConsoleAppender
File - 文件。 org.apache.log4j.FileAppender , org.apache.log4j.RollingFileAppender
17.1.3、Layout
功能是定義日誌的輸出格式
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.2、Log4j的基本使用方法
(以下以項目ch16為例)
步1、將log4j.jar文件,Copy到WEB-INF/lib目錄下。
(此時發布程序,啟動程序,會發出警告信息。信息要求配置
步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進行日誌管理