日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Java常用日志框架总结

發(fā)布時間:2024/8/26 综合教程 27 生活家
生活随笔 收集整理的這篇文章主要介紹了 Java常用日志框架总结 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在項(xiàng)目開發(fā)中,日志十分的重要,不管是記錄運(yùn)行情況還是定位線上問題,都離不開對日志的分析。在 Java 領(lǐng)域里存在著多種日志框架,如 JCL、SLF4J、Jboss-logging、jUL、log4j、log4j2、logback 等等。今天就介紹幾種比較常用的日志框架。

日志介紹

日志概念

日志:在計算機(jī)領(lǐng)域,日志文件(logfile)是一個記錄了發(fā)生在運(yùn)行中的操作系統(tǒng)或其他軟件中的事件的文件,或者記錄了在網(wǎng)絡(luò)聊天軟件的用戶之間發(fā)送的消息。

日志記錄(Logging):是指保存日志的行為。最簡單的做法是將日志寫入單個存放日志的文件。

日志級別

  • FATAL — 表示需要立即被處理的系統(tǒng)級錯誤。當(dāng)該錯誤發(fā)生時,表示服務(wù)已經(jīng)出現(xiàn)了某種程度的不可用,系統(tǒng)管理員需要立即介入。這屬于最嚴(yán)重的日志級別,因此該日志級別必須慎用,如果這種級別的日志經(jīng)常出現(xiàn),則該日志也失去了意義。通常情況下,一個進(jìn)程的生命周期中應(yīng)該只記錄一次FATAL級別的日志,即該進(jìn)程遇到無法恢復(fù)的錯誤而退出時。當(dāng)然,如果某個系統(tǒng)的子系統(tǒng)遇到了不可恢復(fù)的錯誤,那該子系統(tǒng)的調(diào)用方也可以記入FATAL級別日志,以便通過日志報警提醒系統(tǒng)管理員修復(fù);
  • ERROR — 該級別的錯誤也需要馬上被處理,但是緊急程度要低于FATAL級別。當(dāng)ERROR錯誤發(fā)生時,已經(jīng)影響了用戶的正常訪問。從該意義上來說,實(shí)際上ERROR錯誤和FATAL錯誤對用戶的影響是相當(dāng)?shù)摹ATAL相當(dāng)于服務(wù)已經(jīng)掛了,而ERROR相當(dāng)于好死不如賴活著,然而活著卻無法提供正常的服務(wù),只能不斷地打印ERROR日志。特別需要注意的是,ERROR和FATAL都屬于服務(wù)器自己的異常,是需要馬上得到人工介入并處理的。而對于用戶自己操作不當(dāng),如請求參數(shù)錯誤等等,是絕對不應(yīng)該記為ERROR日志的;
  • WARN — 該日志表示系統(tǒng)可能出現(xiàn)問題,也可能沒有,這種情況如網(wǎng)絡(luò)的波動等。對于那些目前還不是錯誤,然而不及時處理也會變?yōu)殄e誤的情況,也可以記為WARN日志,例如一個存儲系統(tǒng)的磁盤使用量超過閥值,或者系統(tǒng)中某個用戶的存儲配額快用完等等。對于WARN級別的日志,雖然不需要系統(tǒng)管理員馬上處理,也是需要及時查看并處理的。因此此種級別的日志也不應(yīng)太多,能不打WARN級別的日志,就盡量不要打;
  • INFO — 該種日志記錄系統(tǒng)的正常運(yùn)行狀態(tài),例如某個子系統(tǒng)的初始化,某個請求的成功執(zhí)行等等。通過查看INFO級別的日志,可以很快地對系統(tǒng)中出現(xiàn)的 WARN,ERROR,FATAL錯誤進(jìn)行定位。INFO日志不宜過多,通常情況下,INFO級別的日志應(yīng)該不大于TRACE日志的10%;
  • DEBUG or TRACE — 這兩種日志具體的規(guī)范應(yīng)該由項(xiàng)目組自己定義,該級別日志的主要作用是對系統(tǒng)每一步的運(yùn)行狀態(tài)進(jìn)行精確的記錄。通過該種日志,可以查看某一個操作每一步的執(zhí) 行過程,可以準(zhǔn)確定位是何種操作,何種參數(shù),何種順序?qū)е铝四撤N錯誤的發(fā)生。可以保證在不重現(xiàn)錯誤的情況下,也可以通過DEBUG(或TRACE)級別的日志對問題進(jìn)行診斷。需要注意的是,DEBUG日志也需要規(guī)范日志格式,應(yīng)該保證除了記錄日志的開發(fā)人員自己外,其他的如運(yùn)維,測試人員等也可以通過 DEBUG(或TRACE)日志來定位問題;

日志級別優(yōu)先級:ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF

日志作用

日志記錄了系統(tǒng)行為的時間、地點(diǎn)、狀態(tài)等相關(guān)信息,能夠幫助我們了解并監(jiān)控系統(tǒng)狀態(tài),在發(fā)生錯誤或者接近某種危險狀態(tài)時能夠及時提醒我們處理,同時在系統(tǒng)產(chǎn)生問題時,能夠幫助我們快速的定位、診斷并解決問題。

Java中常用日志框架

在Java程序中常用日志框架可以分為兩類:

  • 無具體實(shí)現(xiàn)的抽象門面框架,如:Commons Logging、SLF4J
  • 具體實(shí)現(xiàn)的框架,如:Log4j,Log4j 2,Logback,Jul

java常用日志框架關(guān)系

  • Log4j 2與Log4j 1都是Apache旗下的日志框架,Log4j 2與Log4j 1發(fā)生了很大的變化,Log4j 2不兼容Log4j 1。
  • Commons Logging和Slf4j是日志門面(門面模式是軟件工程中常用的一種軟件設(shè)計模式,也被稱為正面模式、外觀模式。它為子系統(tǒng)中的一組接口提供一個統(tǒng)一的高層接口,使得子系統(tǒng)更容易使用)。Log4j和Logback則是具體的日志實(shí)現(xiàn)方案。可以簡單的理解為接口與接口的實(shí)現(xiàn),調(diào)用者只需要關(guān)注接口而無需關(guān)注具體的實(shí)現(xiàn),做到解耦。
  • 比較常用的組合使用方式是Slf4j與Logback組合使用,Commons Logging與Log4j組合使用。
  • Logback必須配合Slf4j使用。由于Logback和Slf4j是同一個作者,其兼容性不言而喻。

JDK自帶了logging,log4j1、log4j2、logback ,這些框架都自己定制了日志 API ,并且有相應(yīng)的實(shí)現(xiàn);目前用于實(shí)現(xiàn)日志統(tǒng)一的框架 Apache commons-logging、slf4j ,遵循面向接口編程的原則,這兩大框架可以讓用戶在程序運(yùn)行期間去選擇具體的日志實(shí)現(xiàn)系統(tǒng)(log4j1\log4j2\logback等)來記錄日志,是統(tǒng)一抽象出來的一些接口。

日志門面框架

日志門面:是門面模式的一個典型的應(yīng)用,門面模式,也稱外觀模式,請參照我的博文設(shè)計模式之外觀模式,日志門面框架就使一套提供了日志相關(guān)功能的接口而無具體實(shí)現(xiàn)的框架,其調(diào)用具體的實(shí)現(xiàn)框架來進(jìn)行日志記錄。也就是說日志門面天然的兼容日志實(shí)現(xiàn)框架。典型的日志門面就是Commons Logging、SLF4J。

日志門面的優(yōu)點(diǎn):

日志門面是介于具體的日志框架與系統(tǒng)之間的橋梁,通過日志門面框架的應(yīng)用實(shí)現(xiàn)了系統(tǒng)與具體實(shí)現(xiàn)日志框架的解耦。無論具體實(shí)現(xiàn)的日志框架如何變化,都不會影響系統(tǒng)日志的記錄功能,更無須更改系統(tǒng)代碼,符合“開放-閉合原則”。

現(xiàn)今,Java日志領(lǐng)域被劃分為兩大陣營:Commons Logging陣營和Slf4j陣營。

  • Commons Logging:Apache Commons Logging是一個基于Java的日志記錄實(shí)用程序,是用于日志記錄和其他工具包的編程模型。它通過其他一些工具提供API,日志實(shí)現(xiàn)和包裝器實(shí)現(xiàn)。
  • SLF4J:Java簡易日志門面(Simple Logging Facade for Java,縮寫SLF4J),是一套包裝Logging 框架的界面程式,以外觀模式實(shí)現(xiàn)。可以在軟件部署的時候決定要使用的 Logging 框架,目前主要支援的有Java Logging API、Log4j及l(fā)ogback等框架。以MIT 授權(quán)方式發(fā)布。SLF4J 的作者就是 Log4j和Logback 的作者 Ceki Gülcü.

我們看一下Commons Logging與Slf4j實(shí)現(xiàn)機(jī)制對比。

Commons Logging與Slf4j實(shí)現(xiàn)機(jī)制對比

Commons Logging實(shí)現(xiàn)機(jī)制

Commons Logging是通過動態(tài)查找機(jī)制,在程序運(yùn)行時,使用自己的ClassLoader尋找和載入本地具體的實(shí)現(xiàn)。詳細(xì)策略可以查看commons-logging-*.jar包中的org.apache.commons.logging.impl.LogFactoryImpl.java文件。由于Osgi不同的插件使用獨(dú)立的ClassLoader,Osgi的這種機(jī)制保證了插件互相獨(dú)立, 其機(jī)制限制了Commons Logging在Osgi中的正常使用。

Slf4j實(shí)現(xiàn)機(jī)制

Slf4j在編譯期間,靜態(tài)綁定本地的Log庫,因此可以在Osgi中正常使用。它是通過查找類路徑下org.slf4j.impl.StaticLoggerBinder,然后在StaticLoggerBinder中進(jìn)行綁定。

日志實(shí)現(xiàn)框架

  • Jul:Java Util Logging,自Java1.4以來的官方日志實(shí)現(xiàn)。
  • Apache Log4j是一個基于Java的日志記錄工具。它是由Ceki Gülcü首創(chuàng)的,現(xiàn)在則是Apache軟件基金會的一個項(xiàng)目。
  • Apache Log4j 2是apache開發(fā)的一款Log4j的升級產(chǎn)品,并且不兼容Log4j。
  • Logback是一個日志框架,Log4j是同一作者,都出自Ceki Gülcü之手。

Java 日志框架的選擇

  • 成本考慮:Logback文檔免費(fèi)。Logback的所有文檔是全面免費(fèi)提供的,不象Log4J那樣只提供部分免費(fèi)文檔而需要用戶去購買付費(fèi)文檔。
  • 資源開銷:Commons Logging相比較與SLF4J開銷更高.
  • 性能:Logback相比Log4j、Log4j2擁有更好的性能。Logback聲稱:某些關(guān)鍵操作,比如判定是否記錄一條日志語句的操作,其性能得到了顯著的提高。這個操作在Logback中需要3納秒,而在Log4J中則需要30納秒。LogBack創(chuàng)建記錄器(logger)的速度也更快:13毫秒,而在Log4J中需要23毫秒。更重要的是,它獲取已存在的記錄器只需94納秒,而Log4J需要2234納秒,時間減少到了1/23。跟JUL相比的性能提高也是顯著的。

總結(jié)

以上是生活随笔為你收集整理的Java常用日志框架总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 双女主黄文| 午夜香蕉 | 午夜视频www | 午夜羞羞影院 | 在哪里可以看毛片 | 91免费福利 | 一区二区日韩 | 越南毛茸茸的少妇 | 亚洲成年| www.天天综合 | 污黄视频在线观看 | 秋霞影院午夜伦 | 男女做激情爱呻吟口述全过程 | 91蜜桃| 国产-第1页-浮力影院 | 绿帽视频 | 麻豆传媒在线播放 | 欧美老少做受xxxx高潮 | 国产精品二区一区二区aⅴ 一卡二卡三卡在线观看 | 一区二区三区欧美精品 | 欧美精品国产动漫 | 亚洲激情视频一区 | 开心激情亚洲 | 伊人久久免费视频 | 致命弯道8在线观看免费高清完整 | 亚洲伦理网站 | 重口变态虐黄网站 | 亚洲精品在线影院 | 欧美青草视频 | 欧美乱码精品一区二区三区 | 粉嫩aⅴ一区二区三区四区五区 | 国产三级影院 | 波多野结衣视频免费看 | 欧美视频直播网站 | 欧美日韩一区二区区别是什么 | 亚洲AV无码成人精品一区 | 99热91| 欧美极品少妇xxxxⅹ裸体艺术 | 欧美一区二区三区婷婷月色 | 中文成人在线 | 亚洲国产麻豆 | 国产成人精品免费视频 | 日本裸体视频 | 欧美爱爱免费视频 | 欧美日韩国产在线 | 91麻豆精品91久久久久同性 | 国产精品水嫩水嫩 | 农村少妇久久久久久久 | 96视频在线观看 | 老狼影院伦理片 | 人人妻人人藻人人爽欧美一区 | 亚洲精品污一区二区三区 | 一本色道久久综合亚洲精品 | 欧美激情校园春色 | 国产成人免费看 | 成年人在线视频观看 | a级在线视频 | 超碰成人免费在线 | 国产又粗又黄的视频 | 久久久888 | 免费看国产视频 | 国产亚洲精品久久久久久久久动漫 | 果冻传媒18禁免费视频 | 国产在线观看免费 | 免费成人在线观看视频 | 天堂免费在线视频 | 国产又大又黄视频 | 免费黄色网页 | 野外做受又硬又粗又大视频√ | av在线不卡观看 | 人妻体内射精一区二区三区 | 国产一级淫片免费 | av电影免费在线播放 | 岳奶大又白下面又肥又黑水多 | 欧美大片在线看 | 精品国自产在线观看 | 亚洲涩涩网 | 欧美色频| 日韩av资源网 | 亚洲第三区 | 国产精品麻豆成人av电影艾秋 | 日本成人在线视频网站 | 精品人妻人人做人人爽夜夜爽 | 中文日韩字幕 | 色妞综合网 | 公侵犯一区二区三区四区中文字幕 | 久久wwww| 日韩免费高清一区二区 | 欧美一级片在线 | 99精品一区| 亚洲经典一区二区三区 | 色倩网站| 午夜视频免费观看 | 欧美日韩黄色片 | jizz中国女人 | 草草影院欧美 | www.色日本 | 亚洲综合在线一区二区 | 少妇无码一区二区三区 |