Eclipse也有lo4j的plug-in可以用,但我是第一次學習所以還是自己手動設定產生log檔比較好。
首先先到log4j官網下載最新版程式http://logging.apache.org/log4j/1.2/download.html
下載回來之後放到自己指定的資料夾下即可
在 Eclipse 新增一個 Java Project,輸入檔名後選next,我們要在這邊加入 Log4j 的 JAR 檔。選 Libraries → Add External JARs
選剛剛放到C槽下 Log4j 檔案裡的 JAR 檔
完成後直接點 Finish。
接下來新增一個 log4j.java 並編輯它,內容如下:
再新增一個log4j.properites檔,或是直接用apache-log4j-1.2.16/examples/lf5 裡面的properites範例檔也可以!
我修改過 properties 檔讓他可以符合以下題意:
將 log 資訊輸出至console且寫進檔案內,非本日之檔名格式為system_notice.log.yyyymmdd,本日之檔名為system_notice.log。紀錄DEBUG以上之訊息。
內容如下:
詳細設定檔內容:
接著會一步一步針對Logger、Appender及Layout做設定,這是組成 log4j 的三大元素。
log4j.rootLogger=Debug, A1, A2
語法:
log4j.rootLogger = [ level ] , appenderName1, appenderName2, …
Logger可以指定記錄的等級,分別為 DEBUG < INFO < WARN < ERROR < FATAL,也可指定ALL和OFF。
ALL表示全部訊息都輸出。OFF則都不輸出。
level 若為 INFO 則表示輸出訊息只記錄 INFO ~ FATAL,不會記錄 DEBUG 訊息,以此類推。
指定訊息輸出目的
語法:
log4j.appender.appenderName = 目的
appenderName 就是我剛剛指定的 A1 和 A2
目的有五種
1.org.apache.log4j.ConsoleAppender(輸出到console介面)
2.org.apache.log4j.FileAppender(文件)
3.org.apache.log4j.DailyRollingFileAppender(每天產生一個Log文件)
4.org.apache.log4j.RollingFileAppender(文件到達指定大小的時候會產生一個新的文件) 5.org.apache.log4j.WriterAppender(將日誌訊息發送到任意指定的地方)
針對 DailyRollingFileAppender 可以指定輸出檔名格式,搭配 File 和 DatePattern 可以指定輸出檔案位置和檔名格式
File=./log/system_notice.log
DatePattern = '.'yyyyMMdd (依題意,預設是yyyy-MM-dd)
輸出格式
Layout 改變 Logger 寫出 log message 的格式
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=[%d{yyyyMMdd}][%p][%C-%L] %m%n
PatternLayout 意思是我可以指定我要輸出的格式是長怎樣子的,須搭配 ConversionPattern 。
格式如下:
# %c 輸出日誌訊息所屬的類別的全名
# %d 輸出日誌時間點的日期或時間,指定格式的方式:%d{yyy-MM-dd HH:mm:ss }。
# %l 輸出日誌事件的發生位置,即輸出日誌訊息的語句處於它所在的類別的第幾行。
# %m 輸出訊息,如log(message)中的message。
# %n 輸出一個列尾符號。
# %p 輸出優先階層,即DEBUG,INFO,WARN,ERROR,FATAL。如果是調用debug()輸出的,則為DEBUG,依此類推。
# %r 輸出自應用啟動到輸出該日誌訊息所耗費的毫秒數。
# %t 輸出產生該日誌事件的線程名。
# %r 輸出自應用啟動到輸出該日誌訊息所耗費的毫秒數。
# %f 輸出日誌訊息所屬的類別的類別名。
更詳細的設定可以參考:
留言列表