close

Eclipse也有lo4j的plug-in可以用,但我是第一次學習所以還是自己手動設定產生log檔比較好。

首先先到log4j官網下載最新版程式http://logging.apache.org/log4j/1.2/download.html

下載回來之後放到自己指定的資料夾下即可

logj4_1

 

在 Eclipse 新增一個 Java Project,輸入檔名後選next,我們要在這邊加入 Log4j 的 JAR 檔。選 Libraries → Add External JARs

logj4_2

 

選剛剛放到C槽下 Log4j 檔案裡的 JAR 檔

logj4_3

 

完成後直接點 Finish。

logj4_4

 

接下來新增一個 log4j.java 並編輯它,內容如下:

 logj4_5

 

再新增一個log4j.properites檔,或是直接用apache-log4j-1.2.16/examples/lf5 裡面的properites範例檔也可以!

我修改過 properties 檔讓他可以符合以下題意:

將 log 資訊輸出至console且寫進檔案內,非本日之檔名格式為system_notice.log.yyyymmdd,本日之檔名為system_notice.log。紀錄DEBUG以上之訊息。

內容如下:

logj4_6

 

詳細設定檔內容:

接著會一步一步針對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 輸出日誌訊息所屬的類別的類別名。

 

更詳細的設定可以參考:

log4j.properties詳解與例子

史蒂芬心得筆記

我與小崴崴的工作日記

符碼記憶

arrow
arrow
    全站熱搜

    toyangel 發表在 痞客邦 留言(3) 人氣()