欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

:Java那些事之Log4j http://www.cnblogs.com/l

系統 2119 0

Java那些事之Log4j

?

上次跟大家分享了java使用berkeley db。這一次,再跟大家分享一個開源組件,大名鼎鼎的log4j。這里需要首先聲明一點,我在這里和大家分享的,都是我的個人實際經驗,只是把我知道的東西盡可能多的分享。但是對于技術本身,可能還有很多更深入更有意思的東西,是我沒有接觸到或者沒有研究的,如果各位對此有更深的研究,歡迎大家一起切磋補充。在這里先拜謝了~

下面進入正題,前一陣用了一下log4j,感覺還是挺不錯的,可以支持配置文件和程序代碼對log進行配置,靈活方便,也具有一定的擴展性,簡單介紹一下。

首先還是說一下獲取方式,去http://logging.apache.org/log4j/1.2/這個地址下載log4j的最新版本,然后添加到java項目中就可以了。

在介紹方法之前,首先對log4j的參數做一個總體的概述:

?

輸出級別的種類
ERROR、WARN、INFO、DEBUG
ERROR 為嚴重錯誤 主要是程序的錯誤
WARN 為一般警告,比如session丟失
INFO 為一般要顯示的信息,比如登錄登出
DEBUG 為程序的調試信息
配置日志信息輸出目的地
log4j.appender.appenderName = fully.qualified.name.of.appender.class
1.org.apache.log4j.ConsoleAppender(控制臺)
2.org.apache.log4j.FileAppender(文件)
3.org.apache.log4j.DailyRollingFileAppender(每天產生一個日志文件)
4.org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產生一個新的文件)
5.org.apache.log4j.WriterAppender(將日志信息以流格式發送到任意指定的地方)
配置日志信息的格式
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
1.org.apache.log4j.HTMLLayout(以HTML表格形式布局),
2.org.apache.log4j.PatternLayout(可以靈活地指定布局模式),
3.org.apache.log4j.SimpleLayout(包含日志信息的級別和信息字符串),
4.org.apache.log4j.TTCCLayout(包含日志產生的時間、線程、類別等等信息)
控制臺選項
Threshold=DEBUG:指定日志消息的輸出最低層次。
ImmediateFlush=true:默認值是true,意謂著所有的消息都會被立即輸出。
Target=System.err:默認情況下是:System.out,指定輸出控制臺
FileAppender 選項
Threshold=DEBUF:指定日志消息的輸出最低層次。
ImmediateFlush=true:默認值是true,意謂著所有的消息都會被立即輸出。
File=mylog.txt:指定消息輸出到mylog.txt文件。
Append=false:默認值是true,即將消息增加到指定文件中,false指將消息覆蓋指定的文件內容。
RollingFileAppender 選項
Threshold=DEBUG:指定日志消息的輸出最低層次。
ImmediateFlush=true:默認值是true,意謂著所有的消息都會被立即輸出。
File=mylog.txt:指定消息輸出到mylog.txt文件。
Append=false:默認值是true,即將消息增加到指定文件中,false指將消息覆蓋指定的文件內容。
MaxFileSize=100KB: 后綴可以是KB, MB 或者是 GB. 在日志文件到達該大小時,將會自動滾動,即將原來的內容移到mylog.log.1文件。
MaxBackupIndex=2:指定可以產生的滾動文件的最大數。
log4j.appender.A1.layout.ConversionPattern=%-4r %-5p %d{yyyy-MM-dd HH:mm:ssS} %c %m%n
日志信息格式中幾個符號所代表的含義:
?-X號: X信息輸出時左對齊;
?%p: 輸出日志信息優先級,即DEBUG,INFO,WARN,ERROR,FATAL,
?%d: 輸出日志時間點的日期或時間,默認格式為ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},輸出類似:2002年10月18日 22:10:28,921
?%r: 輸出自應用啟動到輸出該log信息耗費的毫秒數
?%c: 輸出日志信息所屬的類目,通常就是所在類的全名
?%t: 輸出產生該日志事件的線程名
?%l: 輸出日志事件的發生位置,相當于%C.%M(%F:%L)的組合,包括類目名、發生的線程,以及在代碼中的行數。舉例:Testlog4.main (TestLog4.java:10)
?%x: 輸出和當前線程相關聯的NDC(嵌套診斷環境),尤其用到像java servlets這樣的多客戶多線程的應用中。
?%%: 輸出一個"%"字符
?%F: 輸出日志消息產生時所在的文件名稱
?%L: 輸出代碼中的行號
?%m: 輸出代碼中指定的消息,產生的日志具體信息
?%n: 輸出一個回車換行符,Windows平臺為"\r\n",Unix平臺為"\n"輸出日志信息換行
?可以在%與模式字符之間加上修飾符來控制其最小寬度、最大寬度、和文本的對齊方式。如:
?1)%20c:指定輸出category的名稱,最小的寬度是20,如果category的名稱小于20的話,默認的情況下右對齊。
?2)%-20c:指定輸出category的名稱,最小的寬度是20,如果category的名稱小于20的話,"-"號指定左對齊。
?3)%.30c:指定輸出category的名稱,最大的寬度是30,如果category的名稱大于30的話,就會將左邊多出的字符截掉,但小于30的話也不會有空格。
?4)%20.30c:如果category的名稱小于20就補空格,并且右對齊,如果其名稱長于30字符,就從左邊較遠輸出的字符截掉。

?注 以上參數說明來自:http://blog.csdn.net/azheng270/archive/2008/03/12/2173430.aspx 有興趣的朋友可以直接去那里學習,還有更詳細的解釋。

?

?

使用方法如下,首先需要有一個log4j的配置文件,我們就取名為log4j.properties

log4j.logger.URL_Expand = DEBUG , ?url_expand
log4j.appender.url_expand
= org.apache.log4j.DailyRollingFileAppender
#log4j.appender.url_expand.File
= url_expand.log
log4j.appender.url_expand.layout
= org.apache.log4j.PatternLayout
log4j.appender.url_expand.layout.ConversionPattern
= %d?%p? [ %c ] ?-?%m%n
log4j.appender.url_expand.DatePattern
= yyyy-MM-dd

log4j.logger.Downloader
= DEBUG , ?downloader
log4j.appender.downloader
= org.apache.log4j.DailyRollingFileAppender
#log4j.appender.downloader.File
= downloader.log
log4j.appender.downloader.layout
= org.apache.log4j.PatternLayout
log4j.appender.downloader.layout.ConversionPattern
= %d?%p? [ %c ] ?-?%m%n
log4j.appender.downloader.DatePattern
= yyyy-MM-dd

?上面指定了log的各種信息,但是請注意,這里我把文件名注釋掉了。這是因為我需要動態指定文件名,因為有些程序可能并不是單機運行,而是很多機器一起運行,而最后又要把log放在一起,如果文件名都相同,就會出現新文件覆蓋舊文件的情況。而且文件之間還有混淆,因此我在文件名前打算加上機器的主機名,這樣既避免了剛才的問題,還可以一目了然日志的所有者是哪臺機器,一舉兩得啊。

要動態指定日志名稱,我目前的辦法是在程序中,修改配置文件

View Code

?這樣就可以實現效果了。大家快去試試吧~

?

另外,log4j還可以和郵件相結合,你可以指定當發生了什么級別的事件時,系統會自動向你發送郵件,這樣你可以及時知道錯誤的發生,第一時間去處理,提高工作效率。下面我們來看看怎么發郵件吧。

首先要下載兩個jar:activation.jar和mail.jar 具體地址我不記得了,大家去搜一下吧。應該有很多地方都可以下載的到。

?之后也是要把jar加到java工程中來,然后就可以進行配置了。不用寫代碼哦~

?配置如下,只需要再之前的配置文件的 log4j.logger.URL_Expand = DEBUG , ?url_expand這一行,添加MAIL,然后再后面加上MAIL的配置就行了

?

log4j.logger.URL_Expand = DEBUG , ?url_expand , MAIL
log4j.appender.url_expand
= org.apache.log4j.DailyRollingFileAppender
#log4j.appender.url_expand.File
= url_expand.log
log4j.appender.url_expand.layout
= org.apache.log4j.PatternLayout
log4j.appender.url_expand.layout.ConversionPattern
= %d?%p? [ %c ] ?-?%m%n
log4j.appender.url_expand.DatePattern
= yyyy-MM-dd

log4j.logger.Downloader
= DEBUG , ?downloader , MAIL
log4j.appender.downloader
= org.apache.log4j.DailyRollingFileAppender
#log4j.appender.downloader.File
= downloader.log
log4j.appender.downloader.layout
= org.apache.log4j.PatternLayout
log4j.appender.downloader.layout.ConversionPattern
= %d?%p? [ %c ] ?-?%m%n
log4j.appender.downloader.DatePattern
= yyyy-MM-dd

log4j.appender.MAIL
= org.apache.log4j.net.SMTPAppender
log4j.appender.MAIL.Threshold
= FATAL
log4j.appender.MAIL.BufferSize
= 1
log4j.appender.MAIL.SMTPHost
= smtp .163 .com
log4j.appender.MAIL.SMTPDebug
= false
log4j.appender.MAIL.Subject
= Log4J?Message
log4j.appender.MAIL.SMTPUsername
= username
log4j.appender.MAIL.SMTPPassword
= password
log4j.appender.MAIL.From
= email?address
log4j.appender.MAIL.To
= your?email?address
log4j.appender.MAIL.layout
= org.apache.log4j.PatternLayout?
log4j.appender.MAIL.layout.ConversionPattern
= [ framework ] ?%d?-?%c?-%-4r? [ %t ] ?%-5p?%c?%x?-?%m%n

?其中,需要指定 Threshold也就是發郵件的級別,如果是info,則info以及error還有fatal都會發郵件。

?

?

還需要指定郵件服務器(163測試通過),發件地址,密碼,收件地址和信件格式等。這個大家自己去試試吧。

只要正常寫日志,如果級別超過或等于 Threshold中指定的級別,就會發送郵件,不用額外進行編碼。

:Java那些事之Log4j http://www.cnblogs.com/luchen927/archive/2011/06/30/2094091.htm


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日韩欧美亚洲一区 | 日本一区二区三区免费观看 | se999se男人最爱| 亚洲爽| 日本黄页网站免费 | 九一免费国产 | 国产日韩中文字幕 | 欧美日韩一区二区三在线 | 久久这里只有精品99 | 欧美偷拍自拍视频 | 国产精品一二区 | 日日爽天天操 | 久久人| 亚洲人视频 | 97色伦色在线综合视频 | 欧美一级久久 | 一区二区三区日 | 性夜影院爽黄A爽免费动漫 日韩精品在线一区二区 | 国产男女爽爽爽免费视频 | 全日本爽视频在线 | 国产浮力第一浮力 | 久久久综合网 | 最新欧美精品一区二区三区 | 亚洲岛国片| 亚洲国产咪爱网 | 亚洲色图综合图片 | 天天操bb | 亚洲欧美精品伊人久久 | 日本视频免费 | 日韩精品网| 一级片片| 亚洲国产欧美在线人成aaa | 男女免费爽爽爽在线视频 | 久久久久99| 国产精品午夜电影 | 亚洲精品男人天堂 | 国产日韩精品一区二区 | 一级毛片看真人在线视频 | 极色影院 | 天天操夜夜爽 | 波多野结衣一级 |