欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Springboot項目保存本地系統(tǒng)日志文件的實現(xiàn)方法

 更新時間:2021年04月18日 09:40:31   作者:大白兔碼奶糖  
這篇文章主要介紹了Springboot項目保存本地系統(tǒng)日志文件的實現(xiàn)方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

背景:我們都知道springboot默認(rèn)日志是打印在控制臺中的,不會以文件的形式進(jìn)行保存。那么日后系統(tǒng)上線肯定是有需要對日志進(jìn)行定位分析問題的,那么如何實現(xiàn)將控制臺輸出的日志保存起來?

話不多說,實際效果如下,如果是你預(yù)期的那樣,咱們接著往下看。

如果最后覺得有所幫助,請不要吝嗇你的贊,直接pia的點亮就完事了啦,可好;

 如下是集成,按步驟來:

1、在項目的resources目錄下創(chuàng)建一個名為logback-spring.xml的日志配置文件,配置文件名最好跟我一樣;

2、編寫xml文件內(nèi)容:

code中每句都給出了注釋,方便你們理解。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <!-- 引入默認(rèn)得配置文件 -->
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
 
    <!-- 模塊名標(biāo)識日志名稱 -->
    <springProperty scope="context" name="springAppName" source="spring.application.name"/>
    <!-- info日志單文件大小限制 -->
    <springProperty scope="context" name="logback.fileInfoLog.maxFileSize" source="logback.fileInfoLog.maxFileSize" defaultValue="200MB" />
    <!-- info日志最大保留時長單位天 -->
    <springProperty scope="context" name="logback.fileInfoLog.maxHistory" source="logback.fileInfoLog.maxHistory" defaultValue="15" />
    <!-- info日志文件總大小,超過該大小,舊得即將刪除 -->
    <springProperty scope="context" name="logback.fileInfoLog.totalSizeCap" source="logback.fileInfoLog.totalSizeCap" defaultValue="100GB" />
 
    <!-- error日志單文件大小限制 -->
    <springProperty scope="context" name="logback.fileErrorLog.maxFileSize" source="logback.fileErrorLog.maxFileSize" defaultValue="200MB" />
    <!-- error日志最大保留時長單位天 -->
    <springProperty scope="context" name="logback.fileErrorLog.maxHistory" source="logback.fileErrorLog.maxHistory" defaultValue="15" />
    <!-- error日志文件總大小,超過該大小,舊得即將刪除 -->
    <springProperty scope="context" name="logback.fileErrorLog.totalSizeCap" source="logback.fileErrorLog.totalSizeCap" defaultValue="100GB" />
 
    <!-- http日志單文件大小限制 -->
    <springProperty scope="context" name="logback.fileHttpLog.maxFileSize" source="logback.fileHttpLog.maxFileSize" defaultValue="200MB" />
    <!-- http日志最大保留時長單位天 -->
    <springProperty scope="context" name="logback.fileHttpLog.maxHistory" source="logback.fileHttpLog.maxHistory" defaultValue="15" />
    <!-- http日志文件總大小,超過該大小,舊得即將刪除 -->
    <springProperty scope="context" name="logback.fileHttpLog.totalSizeCap" source="logback.fileHttpLog.totalSizeCap" defaultValue="100GB" />
    <!-- 日志目錄 -->
    <springProperty scope="context" name="logback.rootDir" source="logback.rootDir" defaultValue="logs"/>
    <!-- 控制臺輸出得日志格式 -->
    <property name="CONSOLE_LOG_PATTERN"
              value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
    <!-- 日志文件輸出得日志格式 -->
    <property name="FILE_LOG_PATTERN"
              value="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p %t [%c:%L]-%m%n"/>
    <!-- 控制臺輸出 -->
    <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
        </layout>
    </appender>
    <!-- info日志得設(shè)定 -->
    <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>DENY</onMatch>
            <onMismatch>ACCEPT</onMismatch>
        </filter>
        <encoder>
            <pattern>${FILE_LOG_PATTERN}</pattern>
        </encoder>
        <file>${logback.rootDir}/${springAppName}.log</file>
        <!--滾動策略-->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy" >
            <!--路徑-->
            <fileNamePattern>${logback.rootDir}/%d{yyyy-MM,aux}/%d{yyyy-MM-dd,aux}/${springAppName}-%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
            <maxFileSize>${logback.fileInfoLog.maxFileSize}</maxFileSize>
            <maxHistory>${logback.fileInfoLog.maxHistory}</maxHistory>
            <totalSizeCap>${logback.fileInfoLog.totalSizeCap}</totalSizeCap>
            <cleanHistoryOnStart>true</cleanHistoryOnStart>
        </rollingPolicy>
    </appender>
 
    <!-- 錯誤日志 -->
    <appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <encoder>
            <pattern>${FILE_LOG_PATTERN}</pattern>
        </encoder>
        <file>${logback.rootDir}/${springAppName}-error.log</file>
        <!--滾動策略-->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy" >
            <!--路徑-->
            <fileNamePattern>${logback.rootDir}/%d{yyyy-MM,aux}/%d{yyyy-MM-dd,aux}/${springAppName}-error-%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
            <maxFileSize>${logback.fileErrorLog.maxFileSize}</maxFileSize>
            <maxHistory>${logback.fileErrorLog.maxHistory}</maxHistory>
            <totalSizeCap>${logback.fileErrorLog.totalSizeCap}</totalSizeCap>
            <cleanHistoryOnStart>true</cleanHistoryOnStart>
        </rollingPolicy>
    </appender>
 
    <!-- http日志 -->
    <appender name="httpInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p %m%n</pattern>
        </encoder>
        <file>${logback.rootDir}/${springAppName}-http.log</file>
        <!--滾動策略-->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--路徑-->
            <fileNamePattern>${logback.rootDir}/%d{yyyy-MM,aux}/%d{yyyy-MM-dd,aux}/${springAppName}-http-%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
            <maxFileSize>${logback.fileHttpLog.maxFileSize}</maxFileSize>
            <maxHistory>${logback.fileHttpLog.maxHistory}</maxHistory>
            <totalSizeCap>${logback.fileHttpLog.totalSizeCap}</totalSizeCap>
            <cleanHistoryOnStart>true</cleanHistoryOnStart>
        </rollingPolicy>
    </appender>
 
    <appender name="ASYNC_consoleLog" class="ch.qos.logback.classic.AsyncAppender">
        <appender-ref ref="consoleLog"/>
    </appender>
    <appender name="ASYNC_fileInfoLog" class="ch.qos.logback.classic.AsyncAppender">
        <appender-ref ref="fileInfoLog"/>
    </appender>
    <appender name="ASYNC_fileErrorLog" class="ch.qos.logback.classic.AsyncAppender">
        <appender-ref ref="fileErrorLog"/>
    </appender>
    <appender name="ASYNC_httpInfoLog" class="ch.qos.logback.classic.AsyncAppender">
        <appender-ref ref="httpInfoLog"/>
    </appender>
 
    <root level="info">
        <appender-ref ref="ASYNC_consoleLog" />
        <appender-ref ref="ASYNC_fileInfoLog" />
        <appender-ref ref="ASYNC_fileErrorLog" />
    </root>
    <logger name="log_http" additivity="false" level="INFO">
        <appender-ref ref="ASYNC_httpInfoLog"/>
    </logger>
 
</configuration>

3、配置日志配置中所提到的springAppName;

4、使用這個默認(rèn)不用配置pom依賴,最新的spring-boot-starter-web中已經(jīng)集成了。如下,重啟下項目就能自動生成日志文件了,而且是實時寫入的,控制臺輸出什么,立馬就更新進(jìn)到該xxx.log里頭。

記得,配置日志完后,記得刷新下maven或者關(guān)閉下項目重新打開,以免誤導(dǎo)大家以為日志配置沒用。


總結(jié):啟動項目,直接將logback-spring.xml文件復(fù)制到resources目錄下就可以實現(xiàn)日志文件記錄。是不是非常非常方便。

另外:

想要在控制臺打印sql,如下:

在配置文件中,加上這句就好了; 

###sql打印
logging.level.com.system.xiaoma.mapper=debug

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

相關(guān)文章

  • 詳解JAVA設(shè)計模式之代理模式

    詳解JAVA設(shè)計模式之代理模式

    這篇文章主要介紹了JAVA設(shè)計模式之代理模式的的相關(guān)資料,文中代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • Java實戰(zhàn)之OutOfMemoryError異常問題及解決方法

    Java實戰(zhàn)之OutOfMemoryError異常問題及解決方法

    這篇文章主要介紹了Java實戰(zhàn)之OutOfMemoryError異常,主要結(jié)合著深入理解Java虛擬機(jī)一書當(dāng)中整理了本篇內(nèi)容,感興趣的朋友一起看看吧
    2022-04-04
  • Java如何實現(xiàn)字符串每隔4位加空格

    Java如何實現(xiàn)字符串每隔4位加空格

    這篇文章主要介紹了Java如何實現(xiàn)字符串每隔4位加空格,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • SpringBoot Redis用注釋實現(xiàn)接口限流詳解

    SpringBoot Redis用注釋實現(xiàn)接口限流詳解

    Redis 除了做緩存,還能干很多很多事情:分布式鎖、限流、處理請求接口冪等性。。。太多太多了~今天想和小伙伴們聊聊用 Redis 處理接口限流,這也是最近的 項目涉及到這個知識點了,我就拎出來和大家聊聊這個話題
    2022-07-07
  • springboot 場景啟動器使用解析

    springboot 場景啟動器使用解析

    這篇文章主要介紹了springboot 場景啟動器使用解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • SpringBoot項目Jar包如何瘦身部署的實現(xiàn)

    SpringBoot項目Jar包如何瘦身部署的實現(xiàn)

    這篇文章主要介紹了SpringBoot項目Jar包如何瘦身部署的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • springBoot系列常用注解(小結(jié))

    springBoot系列常用注解(小結(jié))

    這篇文章主要介紹了springBoot系列常用注解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 詳解Java圖形化編程中的鼠標(biāo)事件設(shè)計

    詳解Java圖形化編程中的鼠標(biāo)事件設(shè)計

    這篇文章主要介紹了Java圖形化編程中的鼠標(biāo)事件設(shè)計,是Java的GUI開發(fā)中的基礎(chǔ)部分,需要的朋友可以參考下
    2015-10-10
  • Java基礎(chǔ):徹底搞懂java多線程

    Java基礎(chǔ):徹底搞懂java多線程

    篇文章主要介紹了Java多線程的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)Java線程相關(guān)知識,感興趣的朋友可以了解下,希望能給你帶來幫助
    2021-08-08
  • Java動態(tài)加載類示例詳解

    Java動態(tài)加載類示例詳解

    這篇文章主要給大家介紹了關(guān)于Java動態(tài)加載類的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02

最新評論