电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

Java日志框架用法及常見問題解決方案

瀏覽:96日期:2022-08-22 18:28:37

日志定義:

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

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

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

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

日志框架的作用:

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

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

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

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

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

Log4j Apache Log4j是一個基于Java的日志記錄工具。它是由Ceki Gülcü首創(chuàng)的,現(xiàn)在則是Apache軟件基金會的一個項(xiàng)目。 Log4j是幾種Java日志框架之一。 Log4j 2 Apache Log4j 2是apache開發(fā)的一款Log4j的升級產(chǎn)品,Log4j被apache收購,升級,改為log4j2,框架改動很大,只是借用之名。 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都是同一個作者。)

問題引入:

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

解決思路:

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

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

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

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

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

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

中間轉(zhuǎn)換包說白了就是一種偷天換日的解決方案。比如 log4j-over-slf4j ,即 log4j -> slf4j 的轉(zhuǎn)換包,這個庫定義了與 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>

在項(xiàng)目中引入slf4j+logback 依賴

<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.6</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.6</version> </dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.3</version> </dependency>

logback.xml配置文件

< ?xml version='1.0' encoding='UTF-8'?><configuration> <appender name='STDOUT' class='ch.qos.logback.core.ConsoleAppender'><encoder><pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern></encoder> </appender> <root level='WARN'><appender-ref ref='STDOUT' /></root><!-- 日志:從低到高;只會打印指定級別以后的; additivity表示是否將日志信息反饋給root DEBUG==》INFO===》WARN===》ERRORAdditivity:false ,避免重復(fù)打印日志 --> <!-- 在自己的項(xiàng)目在中設(shè)置打印日志的級別,開發(fā)時使用--> <logger name='com.xxx.xxx' level='DEBUG' additivity='false'> <appender-ref ref='STDOUT'/> </logger> </configuration>

參考鏈接:

slf4j官網(wǎng)

slf4j使用手冊

logback官網(wǎng)

Commons Logging官網(wǎng)

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 传爱自考网_传爱自学考试网 | 闪蒸干燥机-喷雾干燥机-带式干燥机-桨叶干燥机-[常州佳一干燥设备] | FFU_空气初效|中效|高效过滤器_空调过滤网-广州梓净净化设备有限公司 | 沈阳液压泵_沈阳液压阀_沈阳液压站-沈阳海德太科液压设备有限公司 | 铝合金风口-玻璃钢轴流风机-玻璃钢屋顶风机-德州东润空调设备有限公司 | 柔性输送线|柔性链板|齿形链-上海赫勒输送设备有限公司首页[输送机] | 双齿辊破碎机-大型狼牙破碎机视频-对辊破碎机价格/型号图片-金联机械设备生产厂家 | 【星耀裂变】_企微SCRM_任务宝_视频号分销裂变_企业微信裂变增长_私域流量_裂变营销 | MES系统工业智能终端_生产管理看板/安灯/ESOP/静电监控_讯鹏科技 | 塑料检查井_双扣聚氯乙烯增强管_双壁波纹管-河南中盈塑料制品有限公司 | 全自动翻转振荡器-浸出式水平振荡器厂家-土壤干燥箱价格-常州普天仪器 | 抓斗式清污机|螺杆式|卷扬式启闭机|底轴驱动钢坝|污水处理闸门-方源水利机械 | 碳纤维复合材料制品生产定制工厂订制厂家-凯夫拉凯芙拉碳纤维手机壳套-碳纤维雪茄盒外壳套-深圳市润大世纪新材料科技有限公司 | TTCMS自助建站_网站建设_自助建站_免费网站_免费建站_天天向上旗下品牌 | 丹佛斯压力传感器,WISE温度传感器,WISE压力开关,丹佛斯温度开关-上海力笙工业设备有限公司 | 智能监控-安防监控-监控系统安装-弱电工程公司_成都万全电子 | 气动机械手-搬运机械手-气动助力机械手-山东精瑞自动化设备有限公司 | 至顶网| 上海新光明泵业制造有限公司-电动隔膜泵,气动隔膜泵,卧式|立式离心泵厂家 | 河北中仪伟创试验仪器有限公司是专业生产沥青,土工,水泥,混凝土等试验仪器的厂家,咨询电话:13373070969 | MVR蒸发器厂家-多效蒸发器-工业废水蒸发器厂家-康景辉集团官网 | 上海小程序开发-上海小程序制作公司-上海网站建设-公众号开发运营-软件外包公司-咏熠科技 | 干粉砂浆设备_干混砂浆生产线_腻子粉加工设备_石膏抹灰砂浆生产成套设备厂家_干粉混合设备_砂子烘干机--郑州铭将机械设备有限公司 | 东莞工厂厂房装修_无尘车间施工_钢结构工程安装-广东集景建筑装饰设计工程有限公司 | 首页 - 军军小站|张军博客| CCE素质教育博览会 | CCE素博会 | 教育展 | 美育展 | 科教展 | 素质教育展 | 镀锌钢格栅_热镀锌格栅板_钢格栅板_热镀锌钢格板-安平县昊泽丝网制品有限公司 | 超声骨密度仪-动脉硬化检测仪器-人体成分分析仪厂家/品牌/价格_南京科力悦 | 懂研帝_专业SCI论文润色机构_SCI投稿发表服务公司 | [品牌官网]贵州遵义双宁口腔连锁_贵州遵义牙科医院哪家好_种植牙_牙齿矫正_原华美口腔 | 郑州巴特熔体泵有限公司专业的熔体泵,熔体齿轮泵与换网器生产厂家 | 锂电混合机-新能源混合机-正极材料混料机-高镍,三元材料混料机-负极,包覆混合机-贝尔专业混合混料搅拌机械系统设备厂家 | 喷码机,激光喷码打码机,鸡蛋打码机,手持打码机,自动喷码机,一物一码防伪溯源-恒欣瑞达有限公司 | 北京开业庆典策划-年会活动策划公司-舞龙舞狮团大鼓表演-北京盛乾龙狮鼓乐礼仪庆典策划公司 | 电动球阀_不锈钢电动球阀_电动三通球阀_电动调节球阀_上海湖泉阀门有限公司 | 上海平衡机-单面卧式动平衡机-万向节动平衡机-圈带动平衡机厂家-上海申岢动平衡机制造有限公司 | 智能电表|预付费ic卡水电表|nb智能无线远传载波电表-福建百悦信息科技有限公司 | 丁基胶边来料加工,医用活塞边角料加工,异戊二烯橡胶边来料加工-河北盛唐橡胶制品有限公司 | 喷码机,激光喷码打码机,鸡蛋打码机,手持打码机,自动喷码机,一物一码防伪溯源-恒欣瑞达有限公司 | 丽陂特官网_手机信号屏蔽器_Wifi信号干扰器厂家_学校考场工厂会议室屏蔽仪 | 二氧化碳/活性炭投加系统,次氯酸钠发生器,紫外线消毒设备|广州新奥 |