天天看點

Log4j的基本使用

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);

用于顯示錯誤資訊,一般在異常中使用。