摘要:我們?yōu)樯兑萌罩咀畛跷覀冮_始接觸的時(shí)候,我們通常會(huì)使用將我們想要知道的信息打印到控制臺(tái)。為什么是默認(rèn)情況下,會(huì)用來記錄日志,并用級(jí)別輸出到控制臺(tái)。
我們?yōu)樯兑萌罩荆?/b>
最初我們開始接觸Java的時(shí)候,我們通常會(huì)使用System.out.println()將我們想要知道的信息打印到控制臺(tái)。
但是,如果在服務(wù)器上我們?nèi)ミ\(yùn)行我們的Java程序,這個(gè)時(shí)候就凸顯了日志對(duì)于一個(gè)系統(tǒng)來說的重要性,查找異常信息、分析系統(tǒng)運(yùn)行情況等都需要用到日志。
默認(rèn)情況下,Spring Boot會(huì)用SLF4J + Logback來記錄日志,并用INFO級(jí)別輸出到控制臺(tái)。
SLF4J,即簡(jiǎn)單日志門面(Simple Logging Facade for Java),它可以看做是一個(gè)接口框架,并不提供具體的實(shí)現(xiàn),具體的實(shí)現(xiàn)由類似于Log4j,Log4j2,Logback等等這樣的日志框架去完成。
我們?yōu)槭裁匆趯?shí)際的應(yīng)用中去使用SLF4J的API呢?
在阿里巴巴的開發(fā)手冊(cè)上也給我們明確【強(qiáng)制】規(guī)定了
而百度百科上也給出了相應(yīng)的解釋:
SLF4J讓你的代碼獨(dú)立于任何特定的日志記錄API,可以讓我們的程序更加的健壯,不會(huì)讓你因?yàn)椴煌罩镜膶?shí)現(xiàn)而導(dǎo)致的問題去分心。
使用SLF4J的另外一個(gè)理由就是,它可以支持占位符:
String name = "Vi"; logger.debug("My Name is {}", name);
這段程序在運(yùn)行時(shí)刻才會(huì)拿到name。這不僅縮減了代碼中的許多字符串連接,而且減少了創(chuàng)建String對(duì)象所需要的堆內(nèi)存資源。
怎么使用SLF4J?如果我們?cè)谝粋€(gè)Spring Boot 的程序中去使用SLF4J,我們不需要去引入其他的包,因?yàn)槲覀円氲挠嘘P(guān)spring-boot-starter中就已經(jīng)包含了有關(guān)slf4j的jar包。我們只需要通過LoggerFactory去獲取即可:
import org.slf4j.Logger; import org.slf4j.LoggerFactory; ... private static final Logger logger = LoggerFactory.getLogger(ResponseAop.class);
這里需要注意看我們選擇的是不是slf4j包下的Logger,不要選錯(cuò)了喲。
配合Lombok使用@Slf4j首先在pom.xml中添加Lombok的依賴:
org.projectlombok lombok true
然后打開IDEA的設(shè)置項(xiàng),在Plugins中查找:
注意安裝插件后記得重啟使其生效!
然后,我們?cè)陧?xiàng)目中就可以這樣去使用:
@Slf4j public class Slf4JTest { public static void main(String[] args) { log.info("This is a Slf4jTest"); } }關(guān)于日志的配置
這里我就偷個(gè)懶,因?yàn)榫W(wǎng)上一搜一大堆,但是實(shí)際上你用的時(shí)候還是要根據(jù)自己的項(xiàng)目的情況進(jìn)行使用的(你可以關(guān)注我,我會(huì)在后面的項(xiàng)目實(shí)戰(zhàn)中去配置,并給出源碼)。
這里需要注意一點(diǎn):默認(rèn)情況下,Spring Boot將日志輸出到控制臺(tái),不會(huì)寫到日志文件。如果要編寫除控制臺(tái)輸出之外的日志文件,則需在application.yml中設(shè)置logging.file或logging.path屬性。但是這倆屬性同時(shí)配置的時(shí)候,只有logging.file生效!公眾號(hào)
原創(chuàng)文章,文筆有限,才疏學(xué)淺,文中若有不正之處,萬望告知。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/75710.html
摘要:官網(wǎng)源碼推薦從開始手寫一個(gè)框架更多請(qǐng)?jiān)诩夹g(shù)棧微信公眾號(hào)后臺(tái)回復(fù)關(guān)鍵字。是一個(gè)開放源代碼的對(duì)象關(guān)系映射框架,它對(duì)進(jìn)行了非常輕量級(jí)的對(duì)象封裝,它將與數(shù)據(jù)庫表建立映射關(guān)系,是一個(gè)全自動(dòng)的框架。 Java 程序員方向太多,且不說移動(dòng)開發(fā)、大數(shù)據(jù)、區(qū)塊鏈、人工智能這些,大部分 Java 程序員都是 Java Web/后端開發(fā)。那作為一名 Java Web 開發(fā)程序員必須需要熟悉哪些框架呢? 今天...
摘要:引入了新的環(huán)境和概要信息,是一種更揭秘與實(shí)戰(zhàn)六消息隊(duì)列篇掘金本文,講解如何集成,實(shí)現(xiàn)消息隊(duì)列。博客地址揭秘與實(shí)戰(zhàn)二數(shù)據(jù)緩存篇掘金本文,講解如何集成,實(shí)現(xiàn)緩存。 Spring Boot 揭秘與實(shí)戰(zhàn)(九) 應(yīng)用監(jiān)控篇 - HTTP 健康監(jiān)控 - 掘金Health 信息是從 ApplicationContext 中所有的 HealthIndicator 的 Bean 中收集的, Spring...
摘要:定制日志文件簡(jiǎn)單的日志配置不能滿足實(shí)際項(xiàng)目需求,那可以通過引用定制日志文件的形式達(dá)到目的。能根據(jù)類路徑下的類庫和配置文件自動(dòng)配置對(duì)應(yīng)的日志框架。看到這里,相信你對(duì)的日志應(yīng)該有了一個(gè)全面的了解。 本節(jié)內(nèi)容基于 Spring Boot 2.0. 你所需具備的基礎(chǔ) 什么是 Spring Boot? Spring Boot 核心配置文件詳解 Spring Boot 開啟的 2 種方式 Spr...
摘要:你如何理解中的可以理解為啟動(dòng)器,它包含了一系列可以集成到應(yīng)用里面的依賴包,你可以一站式集成及其他技術(shù),而不需要到處找示例代碼和依賴包。如你想使用訪問數(shù)據(jù)庫,只要加入啟動(dòng)器依賴就能使用了。 面試了一些人,簡(jiǎn)歷上都說自己熟悉 Spring Boot, 或者說正在學(xué)習(xí) Spring Boot,一問他們時(shí),都只停留在簡(jiǎn)單的使用階段,很多東西都不清楚,也讓我對(duì)面試者大失所望。 下面,我給大家總結(jié)...
閱讀 2847·2021-09-28 09:36
閱讀 3937·2021-09-22 15:52
閱讀 3630·2021-09-06 15:00
閱讀 1947·2021-09-02 15:40
閱讀 2798·2021-09-02 15:15
閱讀 3454·2021-08-17 10:15
閱讀 2781·2019-08-30 15:53
閱讀 2073·2019-08-29 18:39