最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot項目配置logback日志系統(tǒng)的實現(xiàn)

 更新時間:2021年04月20日 11:08:17   作者:蒲公英不是夢  
這篇文章主要介紹了springboot項目配置logback日志系統(tǒng)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

記錄springboot項目配置logback日志文件管理:

logback依賴jar包

SpringBoot項目配置logback理論上需要添加logback-classic依賴jar包:

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.2.3</version>
</dependency>

但是因為SpringBoot項目默認就是使用的就是logback日志系統(tǒng),創(chuàng)建SpringBoot項目時引入的spring-boot-starter或者spring-boot-starter-web依賴jar包中已經(jīng)包含了spring-boot-starter-logging的依賴,里面同時包含多種日志系統(tǒng)依賴,如下圖所示:

包括logback和log4j,所以,無需額外添加依賴,直接配置logback.xml就可以了。

此外,如果需要切換為log4j2,那么需要在spring-boot-starter-web依賴中排除springboot自帶的commons‐logging,然后在引入log4j2的依賴jar包,如下所示:

<!--排除 commons‐logging-->
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
   <exclusions>
      <exclusion>
      <groupId>commons‐logging</groupId>
      <artifactId>commons‐logging</artifactId>
      </exclusion>
   </exclusions>
</dependency>

<!--引入log4j2 -->
<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>

logback的默認配置

前面說到SpringBoot項目默認使用logback,那么對于logback的配置情況,SpringBoot又是如何定義的呢?

首先,SpringBoot會從resource包下查找logback-test.xmllogback.xml ,如果這兩個都不存在,則會調(diào)用BasicConfigurator,創(chuàng)建一個最小化的基本配置。

最小化配置由一個關聯(lián)到根loggerConsoleAppender組成,默認輸出模式為%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n,root logger級別為DEBUG,所以并不會生成日志文件,只會輸出到控制臺。

創(chuàng)建logback.xml配置文件

通過自定義logback.xml配置文件來控制日志輸出情況,通常我們會配置三個日志組件:

  • 控制臺輸出
  • 輸出info級別日志文件
  • 輸出error級別日志文件

以下為logback.xml完整配置

<!-- Logback configuration. See http://logback.qos.ch/manual/index.html -->
<configuration scan="true" scanPeriod="2 seconds">
    <!--定義日志文件的存儲地址-->
    <property name="LOG_PATH" value="./logs" />
    <!-- 控制臺輸出 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化輸出:%d表示日期,%-5level:級別從左顯示5個字符寬度,%t表示線程名,%msg:日志消息,%n是換行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level ${PID:-} --- [%t] %logger{50} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- info級別日志文件輸出 -->
    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 日志文件輸出的文件名 -->
        <File>${LOG_PATH}/info.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- 每日生成日志文件或日志文件大小超出限制后輸出的文件名模板 -->
            <fileNamePattern>${LOG_PATH}/info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <!-- 日志文件保留天數(shù) -->
            <maxHistory>30</maxHistory>
            <!-- 日志文件最大大小:100MB -->
            <maxFileSize>100MB</maxFileSize>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level ${PID:-} --- [%t] %logger{50} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- error級別日志文件輸出 -->
    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 日志輸出級別,優(yōu)先級 > '<root level>' -->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <File>${LOG_PATH}/error.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_PATH}/error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <maxHistory>30</maxHistory>
            <maxFileSize>100MB</maxFileSize>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level ${PID:-} --- [%t] %logger{50} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- 默認日志輸出級別 -->
    <root level="INFO">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="INFO_FILE" />
        <appender-ref ref="ERROR_FILE" />
    </root>

</configuration>

logback配置說明

根節(jié)點configuration

<configuration scan="true" scanPeriod="2 seconds" debug="false">
    
</configuration>

configuration包含以下三個屬性:

  • scan:配置文件發(fā)生更改時,進行重載,默認值為true
  • scanPeriod:監(jiān)測配置文件是否有修改的時間間隔,默認值為6000,默認單位為毫秒
  • debug:打印logback內(nèi)部日志信息,實時查看logback運行狀態(tài),默認值為false

子節(jié)點property:

<property name="LOG_PATH" value="./logs" />

用來定義變量值,包含以下兩個屬性

  • name:變量名稱
  • value:變量定義的值

通過property定義的值會被插入到logger上下文中,可以使${}來使用變量,這里定義了log的保存位置根目錄。

子節(jié)點appender:

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">

</appender>

是負責寫日志的組件,通過自定義日志組件控制日志輸出的情況,包含以下兩個屬性:

  • name:組件名稱
  • class:組件class指定的類名

不同的class,對應不同的功能:

ch.qos.logback.core.ConsoleAppender會把日志輸出到控制臺

ch.qos.logback.core.rolling.RollingFileAppender把日志內(nèi)容輸出到指定文件

File節(jié)點:日志文件輸出的文件名

<File>${LOG_PATH}/info.log</File>

filter節(jié)點:過濾器,用來指定日志組件的日志輸出級別,優(yōu)先級高于root節(jié)點的level。

<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
    <level>ERROR</level>
</filter>

rollingPolicy節(jié)點:

滾動日志文件配置,涉及日志文件的移動和重命名,只有一個class屬性,用來指定滾動策略,這里使用的是ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy

包含以下三個屬性:

  • fileNamePattern:發(fā)生滾動時的日志命名方式
  • maxHistory:日志文件的最大保留時間,超過設定時間后會自動刪除
  • maxFileSize:每份日志文件的最大限制,超出限制后會重新生成,并將舊的日志文件按照fileNamePattern設定的日志命名方式進行命名
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
    <fileNamePattern>${LOG_PATH}/error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
    <maxHistory>30</maxHistory>
    <maxFileSize>100MB</maxFileSize>
</rollingPolicy>

子節(jié)點encoder

<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
     <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level ${PID:-} --- [%t] %logger{50} - %msg%n</pattern>
</encoder>

對記錄事件進行格式化,負責兩件事,一是把日志信息轉(zhuǎn)換成字節(jié)數(shù)組,二是把字節(jié)數(shù)組寫入到輸出流。
PatternLayoutEncoder 是唯一有用的且默認的encoder ,有一個 節(jié)點,用來設置日志的輸入格式。使用“%”加“轉(zhuǎn)換符”方式,如果要輸出“%”,則必須用“\”對“%”進行轉(zhuǎn)義。

子節(jié)點root

loger,是所有loger的最上級,且只有一個level節(jié)點,用類設置打印日志的級別,默認值為debug,通常設置為info,此外還有trace、warn、error、all、off級別。
子節(jié)點appender-ref的ref屬性指定日志組件名稱,即appendername屬性值。

使用logback

yml文件中增加logging.config指定配置文件地址,命名為logback時可以不需要配置,SpringBoot`會自動查找。

level設置指定路徑下的日志輸出級別。

logging:
  config: classpath:logback.xml
  level:
    com:
      springboot: debug

如圖所示,項目啟動后,訪問接口輸出日志內(nèi)容并生成指定日志文件:

內(nèi)容參考

博客園-ryelqy-logback的使用和logback.xml詳解

到此這篇關于springboot項目配置logback日志系統(tǒng)的實現(xiàn)的文章就介紹到這了,更多相關springboot配置logback日志系統(tǒng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • jxl 導出數(shù)據(jù)到excel的實例講解

    jxl 導出數(shù)據(jù)到excel的實例講解

    下面小編就為大家分享一篇jxl 導出數(shù)據(jù)到excel的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • 通過實例了解java TransferQueue

    通過實例了解java TransferQueue

    這篇文章主要介紹了TransferQueue實例,下面小編和大家一起來學習一下
    2019-05-05
  • Mybatis SqlSessionFactory與SqlSession詳細講解

    Mybatis SqlSessionFactory與SqlSession詳細講解

    SqlSessionFactory是MyBatis的核心類之一,其最重要的功能就是提供創(chuàng)建MyBatis的核心接口SqlSession,所以我們需要先創(chuàng)建SqlSessionFactory,為此我們需要提供配置文件和相關的參數(shù)
    2022-11-11
  • JMeter參數(shù)化4種實現(xiàn)方式(小結)

    JMeter參數(shù)化4種實現(xiàn)方式(小結)

    參數(shù)化是自動化測試腳本的一種常用技巧,可將腳本中的某些輸入使用參數(shù)來代替,JMeter提供了多種參數(shù)化方式,下面就其中常用的4種展開闡述,感興趣的可以來了解一下
    2021-12-12
  • 教你使用eclipse?搭建Swt?環(huán)境的全過程

    教你使用eclipse?搭建Swt?環(huán)境的全過程

    本文給大家分享使用eclipse?搭建Swt?環(huán)境的全過程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • java WebSocket的實現(xiàn)以及Spring WebSocket示例代碼

    java WebSocket的實現(xiàn)以及Spring WebSocket示例代碼

    本篇文章主要介紹了java WebSocket的實現(xiàn)以及Spring WebSocket,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-01-01
  • java?byte數(shù)組轉(zhuǎn)String的幾種常用方法

    java?byte數(shù)組轉(zhuǎn)String的幾種常用方法

    在Java中數(shù)組是一種非常常見的數(shù)據(jù)結構,它可以用來存儲多個相同類型的數(shù)據(jù),有時候,我們需要將數(shù)組轉(zhuǎn)換為字符串,以便于輸出或者傳遞給其他方法,這篇文章主要給大家介紹了關于java?byte數(shù)組轉(zhuǎn)String的幾種常用方法,需要的朋友可以參考下
    2024-09-09
  • Java postgresql數(shù)組字段類型處理方法詳解

    Java postgresql數(shù)組字段類型處理方法詳解

    這篇文章主要介紹了Java postgresql數(shù)組字段類型處理方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Spring事務失效的場景梳理總結

    Spring事務失效的場景梳理總結

    實際項目開發(fā)中,如果涉及到多張表操作時,為了保證業(yè)務數(shù)據(jù)的一致性,大家一般都會采用事務機制,好多小伙伴可能只是簡單了解一下,遇到事務失效的情況,便會無從下手,下面這篇文章主要給大家介紹了關于Spring事務失效場景的相關資料,需要的朋友可以參考下
    2023-02-02
  • 源碼分析Spring?中?@Qualifier?注解基本用法

    源碼分析Spring?中?@Qualifier?注解基本用法

    這篇文章主要介紹了源碼分析Spring?中?@Qualifier?注解基本用法,在源碼分析的過程中,也?GET?到?Spring?許多新的玩法,感興趣的小伙伴趕緊去試試吧
    2023-08-08

最新評論

青浦区| 五大连池市| 侯马市| 浑源县| 汉川市| 肃北| 修武县| 丹巴县| 西华县| 盐源县| 夏邑县| 景东| 英超| 彭山县| 马龙县| 奉节县| 灌云县| 库车县| 定西市| 略阳县| 香格里拉县| 榆树市| 三都| 淳化县| 赫章县| 平定县| 泰兴市| 出国| 屏东市| 岚皋县| 临西县| 珲春市| 高尔夫| 平潭县| 博白县| 永修县| 游戏| 宁明县| 桃园县| 平遥县| 高阳县|