国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

SpringBoot——Slf4j

這篇具有很好參考價值的文章主要介紹了SpringBoot——Slf4j。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

背景介紹

在開發(fā)中,我們經常使用 System.out.println() 來打印一些信息,但是這樣不好,因為大量的使用 System.out 會增加資源的消耗。我們實際項目中使用的是 slf4j 的 logback 來輸出日志,效率挺高的,Spring Boot 提供了一套日志系統(tǒng),logback 是最優(yōu)的選擇。

引用百度百科里的一段話:

SLF4J,即簡單日志門面(Simple Logging Facade for Java),不是具體的日志解決方案,它只服務于各種各樣的日志系統(tǒng)。按照官方的說法,SLF4J是一個用于日志系統(tǒng)的簡單Facade,允許最終用戶在部署其應用時使用其所希望的日志系統(tǒng)。

這段的大概意思是:你只需要按統(tǒng)一的方式寫記錄日志的代碼,而無需關心日志是通過哪個日志系統(tǒng),以什么風格輸出的。因為它們取決于部署項目時綁定的日志系統(tǒng)。例如,在項目中使用了 slf4j 記錄日志,并且綁定了 log4j(即導入相應的依賴),則日志會以 log4j 的風格輸出;后期需要改為以 logback 的風格輸出日志,只需要將 log4j 替換成 logback 即可,不用修改項目中的代碼。這對于第三方組件的引入的不同日志系統(tǒng)來說幾乎零學習成本,況且它的優(yōu)點不僅僅這一個而已,還有簡潔的占位符的使用和日志級別的判斷。

使用slf4j

使用 slf4j 記錄日志非常簡單,直接使用 LoggerFactory 創(chuàng)建即可。

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
 
public class Test {
    private static final Logger logger = LoggerFactory.getLogger(Test.class);
    // ……
}

application.yml 中對日志的配置

我們看一下 application.yml 文件中對日志的配置:

logging:
  config: logback.xml
  level:
    com.itcodai.course03.dao: trace

logging.config 是用來指定項目啟動的時候,讀取哪個配置文件,這里指定的是日志配置文件是根路徑下的 logback.xml 文件,關于日志的相關配置信息,都放在 logback.xml 文件中了。logging.level 是用來指定具體的 mapper 中日志的輸出級別,上面的配置表示 com.itcodai.course03.dao 包下的所有 mapper 日志輸出級別為 trace,會將操作數(shù)據(jù)庫的 sql 打印出來,開發(fā)時設置成 trace 方便定位問題,在生產環(huán)境上,將這個日志級別再設置成 error 級別即可(本節(jié)課不討論 mapper 層,在后面 Spring Boot 集成 MyBatis 時再詳細討論)。

常用的日志級別按照從高到低依次為:ERROR、WARN、INFO、DEBUG。

logback.xml 配置文件解析

在上面 application.yml 文件中,我們指定了日志配置文件 logback.xml,logback.xml 文件中主要用來做日志的相關配置。在 logback.xml 中,我們可以定義日志輸出的格式、路徑、控制臺輸出格式、文件大小、保存時長等等。下面來分析一下:

<1>定義日志輸出格式和存儲路徑

<configuration>
    <property name="LOG_PATTERN" value="%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" />
    <property name="FILE_PATH" value="D:/logs/course03/demo.%d{yyyy-MM-dd}.%i.log" />
</configuration>

我們來看一下這個定義的含義:首先定義一個格式,命名為 “LOG_PATTERN”,該格式中 %date 表示日期,%thread 表示線程名,%-5level 表示級別從左顯示5個字符寬度,%logger{36} 表示 logger 名字最長36個字符,%msg 表示日志消息,%n 是換行符。

然后再定義一下名為 “FILE_PATH” 文件路徑,日志都會存儲在該路徑下。%i 表示第 i 個文件,當日志文件達到指定大小時,會將日志生成到新的文件里,這里的 i 就是文件索引,日志文件允許的大小可以設置,下面會講解。這里需要注意的是,不管是 windows 系統(tǒng)還是 Linux 系統(tǒng),日志存儲的路徑必須要是絕對路徑。

<2>定義控制臺輸出

<configuration>
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <!-- 按照上面配置的LOG_PATTERN來打印日志 -->
            <pattern>${LOG_PATTERN}</pattern>
        </encoder>
    </appender>
</configuration>

使用 節(jié)點設置個控制臺輸出(class="ch.qos.logback.core.ConsoleAppender")的配置,定義為 “CONSOLE”。使用上面定義好的輸出格式(LOG_PATTERN)來輸出,使用 ${} 引用進來即可

<3>定義日志文件的相關參數(shù)

<configuration>
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 按照上面配置的FILE_PATH路徑來保存日志 -->
            <fileNamePattern>${FILE_PATH}</fileNamePattern>
            <!-- 日志保存15天 -->
            <maxHistory>15</maxHistory>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- 單個日志文件的最大,超過則新建日志文件存儲 -->
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
 
        <encoder>
            <!-- 按照上面配置的LOG_PATTERN來打印日志 -->
            <pattern>${LOG_PATTERN}</pattern>
        </encoder>
    </appender>
</configuration>

使用 定義一個名為 “FILE” 的文件配置,主要是配置日志文件保存的時間、單個日志文件存儲的大小、以及文件保存的路徑和日志的輸出格式。

<4>定義日志輸出級別

<configuration>
    <logger name="com.itcodai.course03" level="INFO" />
    <root level="INFO">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE" />
    </root>
</configuration>

有了上面那些定義后,最后我們使用 來定義一下項目中默認的日志輸出級別,這里定義級別為 INFO,然后針對 INFO 級別的日志,使用 引用上面定義好的控制臺日志輸出和日志文件的參數(shù)。這樣 logback.xml 文件中的配置就設置完了。

實際使用:使用Logger在項目中打印日志

在代碼中,我們一般使用 Logger 對象來打印出一些 log 信息,可以指定打印出的日志級別,也支持占位符,很方便。

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 
@RestController
@RequestMapping("/test")
public class TestController {
 
    private final static Logger logger = LoggerFactory.getLogger(TestController.class);
 
    @RequestMapping("/log")
    public String testLog() {
        logger.debug("=====測試日志debug級別打印====");
        logger.info("======測試日志info級別打印=====");
        logger.error("=====測試日志error級別打印====");
        logger.warn("======測試日志warn級別打印=====");
 
        // 可以使用占位符打印出一些參數(shù)信息
        String str1 = "blog.itcodai.com";
        String str2 = "blog.csdn.net/eson_15";
        logger.info("======倪升武的個人博客:{};倪升武的CSDN博客:{}", str1, str2);
 
        return "success";
    }
}

啟動該項目,在瀏覽器中輸入 localhost:8080/test/log 后可以看到控制臺的日志記錄:

======測試日志info級別打印=====
=====測試日志error級別打印====
======測試日志warn級別打印=====
======倪升武的個人博客:blog.itcodai.com;倪升武的CSDN博客:blog.csdn.net/eson_15

因為 INFO 級別比 DEBUG 級別高,所以 debug 這條沒有打印出來,如果將 logback.xml 中的日志級別設置成 DEBUG,那么四條語句都會打印出來,這個大家自己去測試了。同時可以打開 D:\logs\course03\ 目錄,里面有剛剛項目啟動,以后后面生成的所有日志記錄。在項目部署后,我們大部分都是通過查看日志文件來定位問題。文章來源地址http://www.zghlxwxcb.cn/news/detail-417622.html

到了這里,關于SpringBoot——Slf4j的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • SpringBoot集成slf4j日志和logback.xml配置詳解

    SpringBoot集成slf4j日志和logback.xml配置詳解

    slf4j,即(Simple Logging Facade for Java,簡單門面日志)。它是對所有日志框架制定的一種 規(guī)范、標準、接口 ,并不是一個框架的具體的實現(xiàn),它只服務于各種各樣的日志系統(tǒng)。 slf4j提供了統(tǒng)一的記錄日志的接口,對不同日志系統(tǒng)的具體實現(xiàn)進行了抽象化,只要按照其提供的方法記

    2024年02月03日
    瀏覽(42)
  • 【SpringBoot中使用SLE4J日志框架啟動報錯:SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinde】

    【SpringBoot中使用SLE4J日志框架啟動報錯:SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinde】

    1.1 出現(xiàn)的問題 SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”. SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. 1.2 原因分析 檢查自己的maven依賴,發(fā)現(xiàn)已經引入了slf4j-api了,這是為什么呢?其原因是,SLF4J本身

    2024年02月13日
    瀏覽(21)
  • slf4j java: 程序包org.slf4j不存在問題解決

    Error:(17, 1) java: 程序包org.slf4j不存在 1、本來就集成了日志依賴,后面添加了一個新的maven依賴,導致lombok.extern.slf4j.@Slf4j注解有問題。 解決辦法:手動引入slf4j依賴和log4j依賴 旭東怪的個人空間-旭東怪個人主頁-嗶哩嗶哩視頻 嗶哩嗶哩旭東怪的個人空間,提供旭東怪分享的視

    2024年02月12日
    瀏覽(23)
  • springboot日志使用 SLF4J+Logback 實現(xiàn)(springboot默認的日志實現(xiàn)),日志打印到控制臺及日志輸出到指定文件

    還是直接上代碼 @Slf4j 這玩意 默認支持 不用引入 yml 配置文件 下面分享 xml 方式 在 資源目錄下創(chuàng)建 logback-spring.xml 粘貼走 即可 重啟 看控制臺變化 還有磁盤 有沒有寫入 坑 : 我在創(chuàng)建的時候 發(fā)現(xiàn) xml 沒有生效 排查了半天 發(fā)現(xiàn) 在創(chuàng)建 logback-spring.xml 這個文件的時候 我不是手

    2024年04月22日
    瀏覽(100)
  • JAVA基礎 - SLF4J: Class path contains multiple SLF4J bindings

    告警描述 告警顯示,在類路徑下包含了多個SLF4J的綁定,然后選擇了一個實現(xiàn)類。 如何解決 方案一 根據(jù)項目的實際情況,刪除多余的JAR包,多個JAR包路徑如下: 方案二 查看項目的POM文件中是否有重復的SLF4J引入,如何查看?: 找到多余的SLF4J,然后將其排除:

    2024年02月04日
    瀏覽(24)
  • 23、springboot日志使用入門-- SLF4J+Logback 實現(xiàn)(springboot默認的日志實現(xiàn)),日志打印到控制臺及日志輸出到指定文件

    23、springboot日志使用入門-- SLF4J+Logback 實現(xiàn)(springboot默認的日志實現(xiàn)),日志打印到控制臺及日志輸出到指定文件

    就是springboot的默認的日志依賴實現(xiàn)。創(chuàng)建項目的時候存在這個依賴里面。 下面的日志實現(xiàn)就是基于 SLF4J+Logback SLF4J+Logback:SLF4J是門面,Logback是實現(xiàn) 設置日志的級別,可通過以下方式: ▲ 改變Spring Boot的核心日志級別 ▲ 改變程序組件(包括所有各種框架)的核心日志級別

    2024年02月03日
    瀏覽(98)
  • How do I fix “SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder“.“

    有幾種方法,參考這個:java - How do I fix \\\"SLF4J: Failed to load class \\\"org.slf4j.impl.StaticLoggerBinder\\\".\\\" - Stack Overflow 我用這個管用--Also,you can try adding these SLF4J maven dependencies into your pom and let me know if this works:

    2024年02月11日
    瀏覽(17)
  • SLF4J門面日志框架源碼探索

    SLF4J門面日志框架源碼探索

    SLF4J即Simple Logging Facade for Java,它提供了Java中所有日志框架的簡單外觀或抽象。因此,它使用戶能夠使用單個依賴項處理任何日志框架,例如:Log4j,Logback和JUL(java.util.logging)。通過在類路徑中插入適當?shù)?jar 文件(綁定),可以在部署時插入所需的日志框架。如果要更換日志

    2024年02月09日
    瀏覽(25)
  • SLF4J & Spring Boot日志框架

    SLF4J & Spring Boot日志框架

    JAVA有好多優(yōu)秀的日志框架,比如log4j、log4j2、logback、JUL(java.util.logging)、JCL(JAVA Common Logging)等等,logback是后起之秀,是Spring Boot默認日志框架。 今天文章的目標不是研究JAVA的這些日志框架,而是在應用中處于他們前面的日志門面SLF4J,以及初步了解一下Spring Boot的默認日

    2024年01月17日
    瀏覽(22)
  • 【JavaEE進階】 關于?志框架(SLF4J)

    【JavaEE進階】 關于?志框架(SLF4J)

    SLF4J不同于其他?志框架,它不是?個真正的?志實現(xiàn),?是?個抽象層,對?志框架制定的?種規(guī)范、標準、接?.所有SLF4J并不能獨?使?,需要和具體的?志框架配合使? SLF4J是??模式的典型應?(但不僅僅使?了??模式). ??模式(Facade Pattern)?稱為外觀模式,提供了?個

    2024年01月22日
    瀏覽(48)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包