中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

Java日志框架的用法及問題解析-創(chuàng)新互聯(lián)

Java日志框架的用法及問題解析?相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

目前創(chuàng)新互聯(lián)已為上千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、成都網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、西湖網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

日志定義:

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

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

日志級別優(yōu)先級:

ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF

日志框架的作用:

①:跟蹤用戶對系統(tǒng)訪問,記錄了系統(tǒng)行為的時(shí)間、地點(diǎn)、狀態(tài)等相關(guān)信息,能夠幫助我們了解并監(jiān)控系統(tǒng)狀態(tài)

②:進(jìn)行統(tǒng)計(jì)

③:進(jìn)行Debug,在系統(tǒng)產(chǎn)生問題時(shí),能夠幫助我們快速的定位、診斷并解決問題。

在發(fā)生錯(cuò)誤或者接近某種危險(xiǎn)狀態(tài)時(shí)能夠及時(shí)提醒我們處理

常用的日志框架類別簡介:

  • Log4j Apache Log4j是一個(gè)基于Java的日志記錄工具。它是由Ceki Gülcü首創(chuàng)的,現(xiàn)在則是Apache軟件基金會的一個(gè)項(xiàng)目。 Log4j是幾種Java日志框架之一。
  • Log4j 2 Apache Log4j 2是apache開發(fā)的一款Log4j的升級產(chǎn)品,Log4j被apache收購,升級,改為log4j2,框架改動(dòng)很大,只是借用之名。
  • JCL (Jakarta Commons Logging) Apache基金會所屬的項(xiàng)目,是一套Java日志接口,之前叫Jakarta Commons Logging,后更名為Commons Logging。
  • Slf4j(Simple Logging Facade for Java) 類似于Commons Logging,是一套簡易Java日志門面,本身并無日志的實(shí)現(xiàn)。
  • Logback 一套日志組件的實(shí)現(xiàn)(slf4j陣營)。
  • JUL (Java Util Logging),自Java1.4以來的官方日志實(shí)現(xiàn),已被淘汰。
  • jboss-logging 等。

Spring框架內(nèi)部使用的日志框架是 JCL (Jakarta Commons Logging)

Mybatis框架中使用的是 Log4j

Hibernate框架中使用的是 jboss-logging

Springboot底層使用的是 SLF4j + Logback

(Log4j,Logback,SLF4j都是同一個(gè)作者。)

問題引入:

市場上存在非常多的日志框架。每一種日志框架都有自己單獨(dú)的API,要使用對應(yīng)的框架就要使用其對應(yīng)的API,這就大大的增加應(yīng)用程序代碼對于日志框架的耦合性。

解決思路:

為了解決上述問題,就在日志框架和應(yīng)用程序之間架設(shè)一個(gè)溝通的橋梁,對于應(yīng)用程序來說,無論底層的日志框架如何變,都不需要有任何感知。只要門面服務(wù)做的足夠好,隨意換另外一個(gè)日志框架,應(yīng)用程序不需要修改任意一行代碼,就可以直接上線。

在軟件開發(fā)領(lǐng)域有這樣一句話:計(jì)算機(jī)科學(xué)領(lǐng)域的任何問題都可以通過增加一個(gè)間接的中間層來解決。而門面模式就是對于這句話的典型實(shí)踐。

Logback文檔免費(fèi)。Logback的所有文檔是全面免費(fèi)提供的,不象Log4J那樣只提供部分免費(fèi)文檔而需要用戶去購買付費(fèi)文檔。Logback擁有更好的性能。

因?yàn)閟pringboot底層使用的是 SLF4j + Logback,而且平時(shí)開發(fā)中使用頻率最高的也是此組合,所以選擇使用此組合進(jìn)行日志框架的整合。

可能出現(xiàn)的問題:

如果我們直接暴力的排除其他日志框架,可能導(dǎo)致第三方庫在調(diào)用日志接口時(shí)拋出 ClassNotFound 異常,這里就需要用到中間轉(zhuǎn)換包。

中間轉(zhuǎn)換包說白了就是一種偷天換日的解決方案。比如 log4j-over-slf4j ,即 log4j -> slf4j 的轉(zhuǎn)換包,這個(gè)庫定義了與 log4j一致的接口(包名、類名、方法簽名均一致),但是接口的實(shí)現(xiàn)卻是對 slf4j 日志接口的包裝,即間接調(diào)用了 slf4j 日志接口,實(shí)現(xiàn)了對日志的轉(zhuǎn)發(fā)。

解決方案:

①:先排除其他日志包

②:在項(xiàng)目中引入 slf4j 的 轉(zhuǎn)換包

③:在項(xiàng)目中引入 slf4j+logback 依賴+ logback的配置文件

在項(xiàng)目中引入 slf4j的 轉(zhuǎn)換包

<!-- https://mvnrepository.com/artifact/org.slf4j/log4j-over-slf4j -->
<dependency>
	<groupId>org.slf4j</groupId>
	<artifactId>log4j-over-slf4j</artifactId><!-- 替換log4j -->
	<version>1.7.25</version>
</dependency>

<dependency>
	<groupId>org.slf4j</groupId>
	<artifactId>jcl-over-slf4j</artifactId><!-- 替換commons-logging -->
	<version>1.7.25</version>
</dependency>
<dependency>
	<groupId>org.slf4j</groupId>
	<artifactId>jul-to-slf4j</artifactId><!-- 替換java.util.logging -->
	<version>1.7.25</version>
</dependency>

網(wǎng)站題目:Java日志框架的用法及問題解析-創(chuàng)新互聯(lián)
本文鏈接:http://www.rwnh.cn/article24/ddcoje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、響應(yīng)式網(wǎng)站、網(wǎng)頁設(shè)計(jì)公司、定制網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)App設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營
介休市| 二手房| 墨脱县| 屏东市| 长治市| 巴马| 庆城县| 黑河市| 开阳县| 竹溪县| 墨玉县| 含山县| 芮城县| 高陵县| 曲沃县| 丽水市| 偃师市| 梁河县| 娱乐| 藁城市| 垦利县| 肥城市| 宜都市| 巧家县| 五家渠市| 吴桥县| 义乌市| 儋州市| 河西区| 米泉市| 佛学| 陵川县| 醴陵市| 千阳县| 江门市| 介休市| 黄石市| 宝坻区| 旬邑县| 时尚| 辽中县|