當程序有錯誤時,我們就需要找出錯誤的地方并進行驗證,怎樣才能準確快速的找到出錯的地方呢,那就是在程序運行時在控制臺上輸出相關的信息,從而可以判斷程序的運行順序以及出錯的位置。以前總是習慣使用System.out.println();進行信息輸出,現在老師介紹了另一種輸出日志的方法,那就是log4j。
下面對log4j進行簡單介紹:Log4j中有三個主要的組件,它們分別是 Logger、Appender和Layout。1.Appender則是用來指明將所有的log信息存放到什么地方,Log4j中支持多種appender,如 console、files、GUI components、NT Event Loggers等,一個Logger可以擁有多個Appender,也就是你既可以將Log信息輸出到屏幕,同時存儲到一個文件中。2.Layout的作用是控制Log信息的輸出方式,也就是格式化輸出的信息。3.Log4j中將要輸出的Log信息定義了5種級別,依次是FATAL、ERROR、WARN、INFO、DEBUG,當輸出時,只有級別高過配置文件中規定的級別信息才能真正的輸出。Log4j支持兩 種格式的配置文件:XML格式和Java的property格式。
看一個demo:新建一個Log4jDemo的javaWeb工程,建一個Demo1.java
代碼如下:
package com.dr.demo1;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;


public class Demo1 extends HttpServlet
{
private static Logger log = Logger.getLogger(Demo1.class);

public void doGet(HttpServletRequest request,HttpServletResponse response)
{
log.info("welcome to log4j demo!");
}

}


在web.xml中進行配置,代碼如下:
<servlet>
<servlet-name>demo</servlet-name>
<servlet-class>com.dr.demo1.Demo1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>demo</servlet-name>
<url-pattern>/demo</url-pattern>
</servlet-mapping>

導入log4j.jar和log4j.propertie配置文件,配置文件代碼如下:
#級別由高到低依次是:fatal、error、warn、info、debug
log4j.rootLogger=INFO,R,stdout
#debug 無法打印
#log4j.rootLogger=ERROR,R,stdout
#debug/infor/warn 無法打印
#log4j.rootLogger=DEBUG,R,stdout
#都可以打印
#log4j.rootLogger=warn,R,stdout
#info/debug無法打印
#log4j.rootLogger=fatal,R,stdout
#都不可以打印
#log4j.logger.com.cmcc=DEBUG
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
# 日志信息存放的文件位置
log4j.appender.R.File = ${catalina.home}/logs/fetionwapim.log
log4j.appender.R.DatePattern = yyyy-MM-dd'.log'
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n
# %r 自程序開始后消耗的毫秒數
# %t 表示日志記錄請求生成的線程
# %p 表示日專語句的優先級
# %r 與日志請求相關的類別名稱
# %c 日志信息所在的類名
# %m%n 表示日志信息的內容
有關代碼的說明已經在配置文件中說了,在此就不再多做說明。
在瀏覽器中輸入訪問地址,在控制臺上就會打印出信息:
2011-01-18 14:52:39,531 [http-8080-1] [com.dr.demo1.Demo1] [INFO] - welcome to log4j demo!
就到這吧,有不對的地方希望各位大蝦不吝賜教!