SpringBoot 整合 slf4j 日志打印


  划水時間,記錄一下用到的相關slf4j 日志打印,如何實現配置輸出、本地保存log日志文件...

  我使用的是SpringBoot框架,slf4j 類庫已經包含到了 SpringBoot 框架中,所有,所有前提是“你的SpringBoot項目能夠啟動起來”

  /手動滑稽...

 

  第一步:在 application.properties 文件中先定義好logger文件的一些配置信息,這樣方便以后修改配置;

######################   log 配置  ######################
######################   log 配置  ######################
log.fileBackupPath=D://log/
log.history=30
log.fileSize=10mb
log.totalSize=100mb
#當前日志文件名稱
log.fileName=server.log
#備份日志文件命名策略
log.backupFileNamePolicy=server-%d{yyyy-MM-dd}.%i.log
#日志文本生成策略
# d:時間 C:類名稱 M:方法名稱 L:行號 m:消息 n:換行
log.txtPatternPolicy=%d{yyyy-MM-dd HH:mm:ss:SSS} [%thread] %-5level %C{36} %M %L - %m %n

 

 

  第二步:新建一個logger-config.xml 配置文件,路徑:resource/logger-config.xml;

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
    <!-- 引入配置文件 -->
    <property resource="application.properties"/>
    <!-- %m輸出的信息,%p日志級別,%t線程名,%d日期,%c類的全名,%i索引【從數字0開始遞增】 -->

    <!-- 定義控制台輸出格式 -->
    <!-- appender(附加):是 configuration 的子節點,是負責寫日志的組件 -->
    <!--ConsoleAppender :是將信息輸出到控制台-->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender" >
        <encoder>
            <!-- patter(模式)-->
            <!--  %d{pattern}日期
                    %m或者%msg為信息
                    %M為method
                    %L為行號
                    %thread線程名稱
                    %n換行
                    %-5level

                    %C{length} |  %class{length}

                    %c {length }  |  %lo {length }   |  %logger {length }
                    輸出日志的logger名,可有一個整形參數,功能是縮短logger名,設置為0表示只輸入logger最右邊點符號之后的字符串。 Conversion specifier Logger name Result
            -->
            <pattern>${log.txtPatternPolicy}</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    <!-- 配置log 文件生成策略 -->
    <!-- RollingFileAppender: 符合定義條件后,將會重新新建文件進行記錄 -->
    <appender name="server" class="ch.qos.logback.core.rolling.RollingFileAppender">

        <File>${log.fileBackupPath}${log.fileName}</File>
        <!-- TimeBasedRollingPolicy : 是一種基本的滾動策略,會根據時間來進行制定策略,既負責滾動,也負責觸發-->
        <rollingPolicy  class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- fileNamePattern: 文件命名模式 -->
            <fileNamePattern>${log.fileBackupPath}${log.backupFileNamePolicy}</fileNamePattern>
            <!-- 文件存在時間 -->
            <maxFileSize>${log.fileSize}</maxFileSize>
            <maxHistory>${log.history}</maxHistory>
            <totalSizeCap>${log.totalSize}</totalSizeCap>
        </rollingPolicy >
        <encoder>
            <!-- pattern : 用來定義log 日志文件的輸入格式 -->
            <pattern>
                ${log.txtPatternPolicy}
            </pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>


    <logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE" />  
    <logger name="org.hibernate.type" level="TRACE" />
    <logger name="org.hibernate.type.descriptor.sql.BasicExtractor" level="DEBUG" />  
    <logger name="org.hibernate.engine.QueryParameters" level="DEBUG" />  
    <logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG" />

    <!-- 日志級別 -->
    <!-- 級別依次為【從高到低】:FATAL > ERROR > WARN > INFO > DEBUG > TRACE  -->
    <root level="INFO">
        <appender-ref ref="console"/>
        <appender-ref ref="server"/>
    </root>

</configuration>
View Code

  

  第三步:需要在 application.properties 文件中,配置slf4j 關聯本地自己的配置信息,如果不關聯,那就不會加載自己的配置信息了。

#最后,引用配置好的logger 配置文件
logging.config=classpath:config/logger-config.xml

 

效果:

  1.啟動SpringBoot:

  2.生成本地 log 文件:當前文件、備份文件

 

  3.server.log 中的寫入文件:

 

 

 

ByeBye...


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM