struts 日誌包(學習筆記)

yunchat發表於2005-10-20

使用log日誌的實現。 好久前的了,忘記發了上來。剛剛看到,忘記發了。補上吧

[@more@]

常用的日誌實現

1NoOpLog日誌器:org.apache.commons.logging.impl.NoOpLog

2 SimpleLog日誌器:org.apache.commons.logging.impl.SimpleLog 把日誌訊息輸出到標準的系統錯誤流System.err,在SimpleLog初始化的過程中,從名為“simplelog.properties”的屬性檔案中讀取以下屬性:

org.apache.commones.logging.simplelog.defaultlog SimpleLog 的所有例項數值預設日誌級別。fatal,error,warn,info,debug ,trace 預設為info

org.apache.commons.logging.simplelog.showShortLogname 預設true 表在輸出的日誌訊息中包含當前日誌器例項的簡寫名字。

org.apache.commons.logging.simplelog.showdatetime 預設false true:表在輸出的日誌訊息中應包含當前時間資訊。

3Log4J日誌器 Logger:負責生成日誌。Appender:日誌訊息輸出的目的地。

Layout:指定日誌訊息的輸出格式。

通用日誌介面的配置

準備JAR檔案

commons-logging.properties屬性檔案中指定日誌器

為特定的日誌器設定日誌級別、輸出格式和輸出地點等屬性。

SimpleLog : org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog

採用SimpleLog,其日誌輸出地點是固定的,為System.err,無需配置,可以在simplelog.properties屬性檔案中設定日誌級別

org.apache.commons.logging.simplelog.defaultlog=info

Log4J: : org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger

1、定義配置檔案

  首先使用配置檔案將使我們的應用程式更加靈活配置log日誌輸出方式包括輸出優先順序、輸出目的地、輸出格式。Log4j支援兩種配置檔案格式,一種是XML格式的檔案,一種是Java特性檔案log4j.properties(鍵=值)。下面將介紹使用log4j.properties檔案作為配置檔案的方法:

  配置根Logger,其語法為:0

  log4j.rootLogger = [ level ] , appenderName, appenderName, …

  其中,level 是日誌記錄的優先順序,分為OFFFATALERRORWARNINFODEBUGALL或者自定義的級別。Log4j建議只使用四個級別,優先順序從高到低分別是ERRORWARNINFODEBUG。透過在這裡定義的級別,您可以控制到應用程式中相應級別的日誌資訊的開關。比如在這裡定義了INFO級別,則應用程式中所有DEBUG級別的日誌資訊將不被列印出來。 appenderName就是指定日誌資訊輸出到哪個地方。可同時指定多個輸出目的地。

  配置日誌資訊輸出目的地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(將日誌資訊以流格式傳送到任意指定的地方)

  配置日誌資訊的格式(佈局),其語法為:

  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(包含日誌產生的時間、執行緒、類別等等資訊)

  Log4J採用類似C語言中的printf函式的列印格式格式化日誌資訊,列印引數如下: %m 輸出程式碼中指定的訊息

  %p 輸出優先順序,即DEBUGINFOWARNERRORFATAL   %r 輸出自應用啟動到輸出該log資訊耗費的毫秒數   %c 輸出所屬的類目,通常就是所在類的全名   %t 輸出產生該日誌事件的執行緒名   %n 輸出一個回車換行符,Windows平臺為“rn”Unix平臺為“n”   %d 輸出日誌時間點的日期或時間,預設格式為ISO8601,也可以在其後指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},輸出類似:2002年10月18日 221028921   %l 輸出日誌事件的發生位置,包括類目名、發生的執行緒,以及在程式碼中的行數。舉例:Testlog4.main(TestLog4.java:10)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/118026/viewspace-808312/,如需轉載,請註明出處,否則將追究法律責任。

相關文章