Log4j由三個重要的組件構成:日志信息的優先級,日志信息的輸出目的地,日志信息的輸出格式。
日志信息的優先級從高到低有ERROR、WARN、INFO、DEBUG,分別用來指定這條日志信息的重要程度;日志信息的輸出目的地指定了日志將打印到控制台還是文件中;而輸出格式則控制了日志信息的顯示內容。
寫配置文件
#配置文件settingfilename.ini
log4j.rootLogger=INFO, A1, A2
#setting for appender A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n
#setting for appender A2
log4j.appender. A2=org.apache.log4j.RollingFileAppender
log4j.appender. A2.File=example.log
log4j.appender. A2.MaxFileSize=100KB
log4j.appender. A2.MaxBackupIndex=1
log4j.appender. A2.layout=org.apache.log4j.PatternLayout
log4j.appender. A2.layout.ConversionPattern=%p %t %c - %m%n
注意:其中的log4j.appender必須都為小寫
注釋:
1.配置根Logger,其語法為:
log4j.rootLogger = [ level ] , appenderName, appenderName, …
其中,level 是日志記錄的優先級,分為OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定義的級別。Log4j建議只使用四個級別,優先級從高到低分別是ERROR、WARN、INFO、DEBUG。通過在這裡定義的級別,您可以控制到應用程序中相應級別的日志信息的開關。指定輸出只顯示比該級別以上的信息,所有比該級別低的信息都不會被顯示。比如在這裡定義了INFO級別,則應用程序中所有DEBUG級別的日志信息將不被打印出來。
appenderName就是指定日志信息輸出到哪個地方。您可以同時指定多個輸出目的地。
2.配置日志信息輸出目的地Appender,其語法為
log4j.appender.appenderName = fully.qualifIEd.name.of.appender.class
log4j.appender.appenderName.option1 = value1
…
log4j.appender.appenderName.option = valueN
其中,Log4j提供的appender有以下幾種:
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天產生一個日志文件),
org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產生一個新的文件),
org.apache.log4j.WriterAppender(將日志信息以流格式發送到任意指定的地方)
3.配置日志信息的格式(布局),其語法為:
log4j.appender.appenderName.layout = fully.qualifIEd.name.of.layout.class
log4j.appender.appenderName.layout.option1 = value1
…
log4j.appender.appenderName.layout.option = valueN
其中,Log4j提供的layout有以下幾種:
org.apache.log4j.HTMLLayout(以Html表格形式布局),
org.apache.log4j.PatternLayout(可以靈活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的級別和信息字符串),
org.apache.log4j.TTCCLayout(包含日志產生的時間、線程、類別等等信息)
4.當layout為PatternLayout時,ConversionPattern的格式有下面選項:
%r: 自程序開始後消耗的毫秒數
%t: 表示日志記錄請求生成的線程
%p: 表示日志語句的優先級
%r: 與日志請求相關的類別名稱
%c: 信息所在的類名
%m%n: 表示消息的內容
5.配置文件同樣適用於服務器端和客戶端。
代碼中的使用
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);
用於顯示錯誤信息,一般在異常中使用。例如:
catch(IOException e) {
logger.error("IOException!");
System.exit(0);
}
以上只是很簡單的log4j包的一般使用,如果在使用中遇到問題,請查看包的API得到更詳細的信息!