摘要:這篇文章是邊聽尚硅谷的課程邊記的筆記,也是為了之后方便查看,視頻鏈接精彩的故事小張負(fù)責(zé)一個(gè)大型系統(tǒng)的開發(fā),為了監(jiān)控系統(tǒng)的運(yùn)行狀況,系統(tǒng)中包含大量的語句,為了更好地管理呢,小張決定寫一個(gè)日志框架對(duì)日志進(jìn)行管理,他設(shè)想的日志框架應(yīng)該包含以下幾個(gè)
這篇文章是邊聽尚硅谷的課程邊記的筆記,也是為了之后方便查看,視頻鏈接:https://www.bilibili.com/vide...
1. 精彩的故事小張負(fù)責(zé)一個(gè)大型系統(tǒng)的開發(fā),為了監(jiān)控系統(tǒng)的運(yùn)行狀況,系統(tǒng)中包含大量的System.out.println()語句,為了更好地管理呢,小張決定寫一個(gè)日志框架對(duì)日志進(jìn)行管理,他設(shè)想的日志框架應(yīng)該包含以下幾個(gè)功能:
日志應(yīng)該能分為不同的等級(jí)
日志應(yīng)該按天保存在文件中
在此基礎(chǔ)上小張開發(fā)出了這樣一個(gè)日志框架,但是為了使用這個(gè)日志框架,當(dāng)小張修改了這個(gè)日志框架中的內(nèi)容之后,系統(tǒng)中相關(guān)的代碼都需要進(jìn)行修改。為此,小張想到了一種模式:
小張為所有的日志框架寫了一個(gè)統(tǒng)一的接口層:日志門面(抽象層),該日志門面定義了通用的功能接口,具體的實(shí)現(xiàn)可以有不同的實(shí)現(xiàn)
日志門面(日志抽象層) | 日志實(shí)現(xiàn) |
---|---|
Jakarta Commons Logging(不再更新),jboss-logging(生來不為普通程序猿所用), slf4j | log4j(落后),java.util.Logging(不好用),Logback,Log4j2(與Log4j開發(fā)不是同一人) |
最終選擇:日志門面:slf4j 日志實(shí)現(xiàn):Logback
3. slf4j如何在系統(tǒng)中使用slf4j,在系統(tǒng)中導(dǎo)入slf4j和logback的jar包
import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class HelloWorld { public static void main(String[] args) { Logger logger = LoggerFactory.getLogger(HelloWorld.class); logger.info("Hello World"); } }
每個(gè)日志框架都有自己的配置文件,使用slf4j后,配置文件還是使用日志實(shí)現(xiàn)框架自己本身的配置文件
4. 日志框架兼容問題假如我現(xiàn)在開發(fā)A系統(tǒng)用的日志框架是slf4j+logback,但是開發(fā)系統(tǒng)時(shí)用到了spring框架(框架本身的日志記錄依賴common-logging),Hibernate(jboss),Mybatis....那么我這個(gè)系統(tǒng)如何統(tǒng)一使用slf4j+logback進(jìn)行日志記錄??
解決方案:
將系統(tǒng)中其他日志框架先排除掉
用中間包來替換原有的日志框架
再導(dǎo)入slf4j的其他的實(shí)現(xiàn)
5. SpringBoot日志關(guān)系spring-boot-starter
org.springframework.boot spring-boot-starter
sring-boot-starter-logging
org.springframework.boot spring-boot-starter-logging
總結(jié):
SpringBoot底層也是使用slf4j+Logback的方式進(jìn)行日志記錄;
SpringBoot也把其他的日志框架替換成了slf4j
如果我們引入了其他框架,一定要把這個(gè)框架的默認(rèn)日志框架移除掉
6. SpringBoot日志使用 1. 默認(rèn)配置org.springframework spring-core commons-logging commons-logging
SpringBoot默認(rèn)給我們配置好了日志,可以直接使用,默認(rèn)的日志級(jí)別是info;
Logger logger = LoggerFactory.getLogger(getClass()); @Test public void contextLoads() { /*日志級(jí)別trace2. 修改日志的配置 # 配置整個(gè)項(xiàng)目的日志級(jí)別 logging.level.root=debug # 配置指定包下面的日志級(jí)別 logging.level.com.luhuiling=info # logging.file指定日志文件的名稱,如果不指定,日志只在控制臺(tái)輸出 logging.file=D:/springboot.log # logging.path指定日志文件的路徑,如果不指定,文件將存放在項(xiàng)目根目錄下 logging.path # 控制臺(tái)輸出日志的格式 logging.pattern.console # 文件中輸出日志的格式 logging.pattern.file
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/76599.html
摘要:在年首次發(fā)表了這種語言,另外與也是這語言的共同設(shè)計(jì)者。每種都可以通過配置使用控制臺(tái)或者文件輸出日志內(nèi)容。可以通過是中的一個(gè)設(shè)置的日志級(jí)別。參考文檔新年彩蛋自定義參考指南配置類配置詳解 導(dǎo)讀: 在上篇文章學(xué)習(xí)到了如何搭建一個(gè)簡單的Spring Boot的項(xiàng)目,這篇文章我們主要圍繞Spring Boot的外部化文件展開, 快速開始:外部化配置 首先是一個(gè)典型的Spring Boot的項(xiàng)...
摘要:這里使用的是數(shù)據(jù)庫啟動(dòng)類上加上注解在啟動(dòng)類中添加對(duì)包掃描掃描多個(gè)包下的可以有以下幾種方法掃描會(huì)自動(dòng)加載相關(guān)配置,數(shù)據(jù)源就會(huì)自動(dòng)注入到中,會(huì)自動(dòng)注入到中,可以直接使用。有配置文件下的使用掃描多個(gè)包下的可以有以下幾種方法掃描 Spring-Boot 學(xué)習(xí)筆記 1 Spring-Boot 介紹 1.1 什么是Spring-Boot Spring-Boot是由Pivotal團(tuán)隊(duì)提供的全新框架...
摘要:背景這段時(shí)間較忙,有些想念小紅,為了表達(dá)我對(duì)小紅的思念之情,決定將啟動(dòng)的研究一下,看看是否能夠自定義,讓我天天能夠看到她。 背景 這段時(shí)間較忙,有些想念小紅,為了表達(dá)我對(duì)小紅的思念之情,決定將spring boot啟動(dòng)的banner研究一下,看看是否能夠自定義,讓我天天能夠看到她。 展示 經(jīng)過調(diào)研,發(fā)現(xiàn)自定義banner是一個(gè)輕松愉快的過程,忍不住讓我多啟動(dòng)幾次,先看看效果:(省略了一...
閱讀 3423·2021-11-24 09:38
閱讀 3198·2021-11-22 09:34
閱讀 2113·2021-09-22 16:03
閱讀 2374·2019-08-29 18:37
閱讀 383·2019-08-29 16:15
閱讀 1774·2019-08-26 13:56
閱讀 870·2019-08-26 12:21
閱讀 2210·2019-08-26 12:15