JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java Tools  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友   
reply to topicthreaded modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 利用log4j實作console log + file log + mail log + db log
wing_zero

Keroro捕獲~~是也



發文: 213
積分: 9
於 2007-03-31 14:05 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
每天都要去查log4j的log作system daily check,讓我覺的很煩...所以就找找看log4j有沒有辦法作mail log跟db log。沒想到還真的有...相關設定方式如下,有需要的可以參考一下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
log4j.rootLogger=DEBUG,consoleAppender,fileAppender,mailAppender,dbAppender
 
#Console Log
log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender
log4j.appender.consoleAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.consoleAppender.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss} %-5p %m%n
 
#File Log
log4j.appender.fileAppender=org.apache.log4j.RollingFileAppender
log4j.appender.fileAppender.File=d:/temp/log4j.log
log4j.appender.fileAppender.MaxFileSize=30MB
log4j.appender.fileAppender.MaxBackupIndex=10000
log4j.appender.fileAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.fileAppender.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss} %-5p %m%n 
 
#Mail Log(系統一出錯馬上發送mail)
log4j.appender.mailAppender=org.apache.log4j.net.SMTPAppender
log4j.appender.MailLog.Threshold=error
log4j.appender.mailAppender.BufferSize=512
log4j.appender.mailAppender.From=xxx@xxx.com
log4j.appender.mailAppender.To=xxx@xxx.com
log4j.appender.mailAppender.SMTPHost=xxx.com
log4j.appender.mailAppender.Subject=System Occur Error!!!
log4j.appender.mailAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.mailAppender.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss} %-5p %m%n
 
#Database Log
log4j.appender.dbAppender=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.dbAppender.driver=oracle.jdbc.driver.OracleDriver
log4j.appender.dbAppender.URL=jdbc:oracle:thin:@xxx:1521:xxx
log4j.appender.dbAppender.user=xxx
log4j.appender.dbAppender.password=xxx
log4j.appender.dbAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.dbAppender.sql=INSERT INTO LOG(STATUS,MESSAGE,LOGDT) VALUES ('%-5p','%m',SYSDATE)


如果要用db log跟mail log的功能,記的把javamail跟jdbc driver相關jar檔放到系統裡。

db log跟mail log好用歸好用,不過...我自已試過後發現還是有下面這二點問題。
1.db log是每次寫一筆資料到db時,就建立一次db connection,效能很不好,log4j沒有提供可以設定connection pool的相關設定參數
2.mail log裡的"log4j.appender.MailLog.Threshold"參數值設定為"error"之外的值是沒有效果的。也就正說只有Logger Level為ERROR層級的錯誤才會發送mail

不知這二個問題是否有人有解呢Question


reply to postreply to post
俺的部落格
作者 Re:利用log4j實作console log + file log + mail log + db log [Re:wing_zero]
GERRYccc





發文: 31
積分: 0
於 2007-06-23 13:39 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
org.apache.log4j.jdbc.JDBCAppender

繼承並覆寫它的資料庫連線方式,不知道有沒有用吼?!...ccc

========
轉貼補充一下:
來源: http://my.so-net.net.tw/idealist/Java/Log4j.html
說明

階層
Log4j將輸出訊息分成五個等級,分別為DEBUG、INFO、WARN、ERROR、FATAL,在上面設定檔將輸出等級設為INFO,就表示INFO~FATAL等級的訊息將會輸出,因此DEBUG等級的訊息就會被忽略,如果將設定檔的第一行改為log4j.rootLogger=DEBUG, A1, A2,就會兩個訊息都輸出了。除了這五個等級外,也可以設為ALL或OFF, ALL很示全部訊息都輸出,OFF則表示不輸出訊息。

輸出格式
# %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 輸出日誌訊息所屬的類別的類別名。
值得注意的是A2的appender被設為org.apache.log4j.DailyRollingFileAppender表示Log4j會將日誌檔依日期分開。


reply to postreply to post
作者 Re:利用log4j實作console log + file log + mail log + db log [Re:wing_zero]
ccdrumer





發文: 17
積分: 0
於 2007-07-01 03:56 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
第一個問題
http://logging.apache.org/log4j/docs/api/org/apache/log4j/jdbc/JDBCAppender.html
說明文件裡面說
可以自己 複寫 protected Connection getConnection() 方法 來做自己的 Connection pool
這樣可以解決嗎??


reply to postreply to post
作者 Re:利用log4j實作console log + file log + mail log + db log [Re:wing_zero]
javachen





發文: 110
積分: 1
於 2007-07-01 13:00 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
這個
log4j.appender.MailLog.Threshold=error

應該是要這樣吧?
log4j.appender.mailAppender.Threshold=error


reply to postreply to post
作者 Re:利用log4j實作console log + file log + mail log + db log [Re:wing_zero]
chuan6743





發文: 1
積分: 0
於 2010-03-09 18:05 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
請問下列
如果要用db log跟mail log的功能,記的把javamail跟jdbc driver相關jar檔放到系統裡。

是代表要放在哪裡呢??


reply to postreply to post
Where there is a will there is a way.
Ronon
» JWorld@TW »  Java Tools

reply to topicthreaded modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8