Log4j由三個重要的元件 構 成:日志 資訊 的優先級,日志資訊的輸出目的地,日志資訊的輸出格式。
日志資訊的優先級 從高到低有ERROR 、 WARN 、 INFO 、 DEBUG ,分别用來指定這條日志資訊的重要程度。
日志資訊的輸出目的 地指定了日志将列印到控制台還是檔案中;而輸出格式則控制了日志資訊的顯示内容。
# 配置根 Logger ,其文法為:
log4j.rootLogger = [ level ] , appenderName, appenderName, …
※ level 是日志記錄的優先級,分為OFF 、 FATAL 、 ERROR 、 WARN 、 INFO 、 DEBUG 、 ALL 或者您定義的級别。 Log4j 建議隻使用四個級别,優 先級從高到低分别是 ERROR 、 WARN 、 INFO 、 DEBUG 。通過在這裡定義的級别,您可以控制到應用程式中相應級别的日志資訊的開關。指定輸出隻顯 示比該級别以上的資訊,所有比該級别低的資訊都不會被顯示。比如在這裡定義了 INFO 級别,則應用程式中所有 DEBUG 級别的日志資訊将不被列印出來。
※ appenderName 就是指定日志資訊輸出到哪個地方。您可以同時指定多個輸出目的地。
# 配置日志資訊輸出目的地 Appender ,其文法為:
log4j.appender.appenderName = fully.qualified.name.of.appender.class
※ Log4j提供的 appender 有以下幾種:
org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(檔案)
org.apache.log4j.DailyRollingFileAppender(每天産生一個日志檔案)
org.apache.log4j.RollingFileAppender(檔案大小到達指定尺寸的時候産生一個新的檔案)
org.apache.log4j.WriterAppender(将日志資訊以流格式發送到任意指定的地方)
# 配置日志資訊的格式(布局),其文法為:
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
※ Log4j提供的 layout 有以下幾種:
org.apache.log4j.HTMLLayout(以 HTML 表格形式布局),
org.apache.log4j.PatternLayout(可以靈活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志資訊的級别和資訊字元串),
org.apache.log4j.TTCCLayout(包含日志産生的時間、線程、類别等等資訊)
※ 當layout 為 PatternLayout 時, ConversionPattern 的格式有下面選項:
%r: 自程式開始後消耗的毫秒數
%t: 表示日志記錄請求生成的線程
%p: 表示日志語句的優先級
%r: 與日志請求相關的類别名稱
%c: 資訊所在的類名
%m%n: 表示消息的内容
*************************代碼中的使用 *******************************
1. import中加入以下幾行:
import org.apache.log4j.PropertyConfigurator ;
import org.apache.log4j.Logger ;
import org.apache.log4j.Level ;
2. 定義 Logger 變量 :
static Logger logger = Logger.getLogger(ServerWithLog4j.class.getName ()) ;
3. 讀配置檔案 :
PropertyConfigurator.configure (String settingfilename) ;
4. 顯示日志資訊 :
按顯示級别顯示日志資訊 logger.debug(String log_info);
用于顯示調試資訊 logger.info (String log_info);
用于顯示系統提示資訊 logger.warn(String log_info);
用于顯示警告或特殊提示 logger.error(String log_info);
用于顯示錯誤資訊,一般在異常中使用。