Log4j ( Log for Java ) 是 Apache 下的一個開源項目,通過 Log4j,可以將程序運行的信息輸送到指定的目的地。這個目的地可以是控制臺、文件、郵箱等。
Log4j 支持兩種格式的文件配置,即 properties 和 xml 兩種格式的文件。下面將要介紹的是采用 properties 格式的配置。
① [ 配置日志級別和輸出源 ]
log4j.rootLogger = 級別,輸出源1,輸出源2 … …
日志信息優先級別 : ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF
常用優先級別 : DEBUG < INFO < WARN < ERROR
- DEBUG : 程序的調試信息
- INFO : 程序的一般信息,例如,用戶的登錄、登出,方法執行成功信息等
- WARN : 程序的警告信息
- ERROR : 程序的嚴重錯誤信息,例如,程序的執行拋出異常
Tips : 只有當日志信息的優先級別大于等于配置的日志信息級別,日志信息才會被記錄到日志。
日志輸出源 :
- 日志輸出源的個數可以是一個,也可以是多個,多個輸出源的時候,輸出源與輸出源之間用逗號分隔
- 日志輸出源的名字可以根據需要,自定義起名
② [ 指定輸出源輔助類 ]
log4j.appender.輸出源名稱 = Appender.class
常用的 Appender ( 在 log4j-version.jar 的 org.apache.log4j 包下 ) :
1. org.apache.log4j.FileAppender(文件)
2. org.apache.log4j.ConsoleAppender(控制臺)
3. org.apache.log4j.DailyRollingFileAppender(每天產生一個日志文件)
4. org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產生一個新的文件)
③ [ 指定輸出源文件存放路徑 ]
log4j.appender.輸出源名稱.file = path ( 日志具體存放路徑 )
④ [ 指定輸出源文件的格式布局 ]
log4j.appender.輸出源名稱.layout = Layout.class
常用的 Layout ( 在 log4j-version.jar 的 org.apache.log4j 包下 ) :
1. org.apache.log4j.SimpleLayout ( 簡單的布局方式,含日志信息的級別和信息 )
2. org.apache.log4j.PatternLayout ( 可自定義的布局模式 )
3. org.apache.log4j.HTMLLayout ( 以 HTML 方式布局 )
⑤ [ 自定義布局模式,可選 ]
log4j.appender.輸出源名稱.layout.conversionPattern
%p : 輸出日志信息優先級,即DEBUG,INFO,WARN,ERROR,FATAL …
%d : 輸出日志時間點的日期或時間,默認格式為ISO8601,也可以在其后指定格式,例如:%d{yyy-MMM-dd HH:mm:ss},輸出類似:2012-10-10 12:20:18
%r : 輸出自應用啟動到輸出該log信息耗費的毫秒數
%c : 輸出日志信息所屬的類,通常就是所在類的全名
%t : 輸出產生該日志事件的線程名
%l : 輸出日志事件的發生位置
%x : 輸出和當前線程相關聯的信息
%% : 輸出一個"%"字符
%F : 輸出日志消息產生時所在的文件名稱
%L : 輸出代碼中的行號
%m : 輸出代碼中指定的消息,產生的日志具體信息
%n : 換行
環境 : JDK 1.6,Eclipse 3.6,Maven 3.0.4,log4j 1.2.16,mail 1.4.4
項目結構 :

注 : 此處配置 pom.xml 是使用 maven 來管理 jar 包,如果你沒有使用 maven,則需手動導入相關 jar 包。
注 : 如果在 log4j.properties 中配置了日志信息發送到郵箱,即將上面的 log4j.properties 配置中的 # Email log 下面的注釋 ( properties 文件中 ' # ' 是行注釋 )
全部取消的話,則需要在配置中添加一個輸出源,同樣的,這個輸出源的名稱是自定義的,在這里,如果我去掉注釋,則需要多配一個名稱叫 mail 的輸出源,除此之外,
還需要添加 java 的 mail 的 jar 包,否則,后臺將拋出 java.lang.ClassNotFoundException 的異常信息。
posted on 2012-10-11 20:12
fancydeepin 閱讀(5486)
評論(0) 編輯 收藏