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

springboot整合logback打印日志,分文件

 更新時間:2023年11月02日 10:16:47   作者:格林愛通話  
本文主要介紹了springboot整合logback打印日志,分文件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

前言:

接著上面實戰(zhàn)03講,這次我們采用springboot自帶的日志打印方式-logback 來打印日志

一、pom.xml配置

因為是springboot自帶的日志方式,所以不需要添加依賴

二、application.yml 配置

因為是springboot自帶的日志方式,所以不需要添加logback.xml 路徑,當然如果你非要加也可以

logging:
  config: classpath:logback.xml

三、logback.xml 配置

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">
    <!--定義日志文件的存儲地址 ,這個使用的是相對路徑,即在日志文件存放在項目根路徑logs文件夾下-->
    <property name="LOG_HOME" value="log/" />
    <property name="all-logger" value="all-logger" />
    <!-- 控制臺輸出 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化輸出:%d表示日期,%thread表示線程名,%-5level:級別從左顯示5個字符寬度%msg:日志消息,%n是換行符-->
            <!--            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>-->
            <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%p] [%t] [%-40.40logger{39}] : %m%n</pattern>
        </encoder>
    </appender>

    <!-- 按照每天生成日志文件 -->
    <appender name="${all-logger}" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_HOME}/all-logger.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件輸出的文件名-->
            <FileNamePattern>${LOG_HOME}/${all-logger}.log.%d{yyyy-MM-dd}.%i</FileNamePattern>
            <!--日志文件保留天數(shù)-->
            <MaxHistory>30</MaxHistory>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>250MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化輸出:%d表示日期,%thread表示線程名,%-5level:級別從左顯示5個字符寬度%msg:日志消息,%n是換行符-->
            <!--            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>-->
            <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%p] [%t] [%-40.40logger{39}] : %m%n</pattern>
            <charset>utf8</charset>
        </encoder>
    </appender>

    <logger name="com.example.demo" level="DEBUG" ></logger>

    <!-- 日志輸出級別 ,一定要把上邊定義的appender 寫在下面否者會導致日志文件生成不了,或者為空的日志文件-->
    <root level="INFO">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="${all-logger}" />
    </root>
</configuration>

四、測試類

因為自帶的日志方式,所以可以直接使用注解,@slf4j, 這樣就方便很多

啟動項目

控制臺:

 日志:

五、常見問題:

1、mybatis 的sql 日志無法打印

那是因為確實打印的指定的包,因為我們需要打印所有包的sql,所以直接配置一個最大的包

<logger name="com.example.demo" level="DEBUG" ></logger>

2、mybatis 打印了sql的結(jié)果集明細

那是因為日志基本寫成了dubug

<root level="DEBUG">
    <appender-ref ref="STDOUT" />
    <appender-ref ref="${all-logger}" />
</root>

這樣就會打印結(jié)果集的全部明細,日志量會異常龐大,一般我們只需要打印INFO級別就可以了。

六、日志按照業(yè)務(wù)類別打印不同文件

1、logback.xml 

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">
    <!--定義日志文件的存儲地址 ,這個使用的是相對路徑,即在日志文件存放在項目根路徑logs文件夾下-->
    <property name="LOG_HOME" value="log" />
    <!-- 控制臺輸出 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化輸出:%d表示日期,%thread表示線程名,%-5level:級別從左顯示5個字符寬度%msg:日志消息,%n是換行符-->
            <!--            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>-->
            <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%p] [%t] [%-40.40logger{39}] : %m%n</pattern>
        </encoder>
    </appender>

    <!-- 按照每天生成日志文件 -->
    <appender name="ALLACTIONAPPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_HOME}/alllogger.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件輸出的文件名-->
            <FileNamePattern>${LOG_HOME}/alllogger.log.%d{yyyy-MM-dd}.%i</FileNamePattern>
            <!--日志文件保留天數(shù)-->
            <MaxHistory>30</MaxHistory>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>250MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化輸出:%d表示日期,%thread表示線程名,%-5level:級別從左顯示5個字符寬度%msg:日志消息,%n是換行符-->
            <!--            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>-->
            <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%p] [%t] [%-40.40logger{39}] : %m%n</pattern>
            <charset>utf8</charset>
        </encoder>
    </appender>

    <appender name="TASKACTIONAPPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_HOME}/taskaction.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件輸出的文件名-->
            <FileNamePattern>${LOG_HOME}/taskaction.log.%d{yyyy-MM-dd}.%i</FileNamePattern>
            <!--日志文件保留天數(shù)-->
            <MaxHistory>30</MaxHistory>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>250MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化輸出:%d表示日期,%thread表示線程名,%-5level:級別從左顯示5個字符寬度%msg:日志消息,%n是換行符-->
            <!--            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>-->
            <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%p] [%t] [%-40.40logger{39}] : %m%n</pattern>
            <charset>utf8</charset>
        </encoder>
    </appender>

    <logger name="com.example.demo" level="DEBUG" >
    </logger>

    <!-- 日志輸出級別 ,一定要把上邊定義的appender 寫在下面否者會導致日志文件生成不了,或者為空的日志文件-->
    <root level="INFO">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="ALLACTIONAPPENDER" />
    </root>

    <!--業(yè)務(wù)操作日志-->
    <logger name="TASKACTION" level="info" additivity="false">
        <appender-ref ref="TASKACTIONAPPENDER"/>
    </logger>

    <logger name="ALLACTION" level="info" additivity="false">
        <appender-ref ref="ALLACTIONAPPENDER"/>
    </logger>

</configuration>

ALLACTION 打印默認的日志, 
TASKACTION 打印任務(wù)類型的日志

2、測試類 

直接通過logger name 來打印自定義的業(yè)務(wù)日志, logger的配置就是LoggerFactory需要的模板,只有配置了工廠獲取才會生效。

3、啟動項目

控制臺

 alllogger 文件

taskaction 文件

可以看到控制臺并沒有打印 自定義的業(yè)務(wù)日志,如果要打印,需要在自定義工廠里面加上控制臺輸出。

<!--業(yè)務(wù)操作日志, logger的配置就是LoggerFactory需要的模板,只有配置了工廠獲取才會生效。-->
<logger name="TASKACTION" level="info" additivity="false">
    <appender-ref ref="STDOUT" />
    <appender-ref ref="TASKACTIONAPPENDER"/>
</logger>

<logger name="ALLACTION" level="info" additivity="false">
    <appender-ref ref="STDOUT" />
    <appender-ref ref="ALLACTIONAPPENDER"/>
</logger>

再次啟動項目

4、注解 + logger.getname 一起用  

因為注解方式打印的就是默認的日志文件,但是我們?nèi)绻€要打印任務(wù)日志怎么辦呢,這時就可以結(jié)合使用。

測試類

啟動項目。

控制臺

 allaction默認日志

taskaction

到此這篇關(guān)于springboot整合logback打印日志,分文件的文章就介紹到這了,更多相關(guān)springboot logback打印日志內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java實現(xiàn)馬踏棋盤的算法

    java實現(xiàn)馬踏棋盤的算法

    這篇文章主要為大家詳細介紹了java實現(xiàn)馬踏棋盤的算法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Java使用 try-with-resources 實現(xiàn)自動關(guān)閉資源的方法

    Java使用 try-with-resources 實現(xiàn)自動關(guān)閉資源的方法

    這篇文章主要介紹了Java使用 try-with-resources 實現(xiàn)自動關(guān)閉資源的方法,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • 關(guān)于Java集合框架面試題(含答案)上

    關(guān)于Java集合框架面試題(含答案)上

    Java集合框架為Java編程語言的基礎(chǔ),也是Java面試中很重要的一個知識點。這里,我列出了一些關(guān)于Java集合的重要問題和答案。
    2015-12-12
  • Java集合框架ArrayList源碼分析(一)

    Java集合框架ArrayList源碼分析(一)

    這篇文章主要為大家詳細介紹了Java集合框架ArrayList源碼分析,感興趣的小伙伴們可以參考一下
    2016-08-08
  • java 分布式與集群的區(qū)別和聯(lián)系

    java 分布式與集群的區(qū)別和聯(lián)系

    本文主要介紹了java分布式與集群的區(qū)別和聯(lián)系,具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • Maven 倉庫國內(nèi)鏡像源收藏(小結(jié))

    Maven 倉庫國內(nèi)鏡像源收藏(小結(jié))

    這篇文章主要介紹了Maven 倉庫國內(nèi)鏡像源收藏(小結(jié)),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • 基于Java語言開發(fā)的一個高效的敏感詞過濾工具

    基于Java語言開發(fā)的一個高效的敏感詞過濾工具

    這篇文章主要為大家詳細介紹了如何基于Java語言開發(fā)的一個高效的敏感詞過濾工具,文中的示例代碼簡潔易懂,有需要的小伙伴可以參考一下
    2025-01-01
  • Spring Boot中如何使用Swagger詳解

    Spring Boot中如何使用Swagger詳解

    Swagger是一個規(guī)范和完整的框架,用于生成、描述、調(diào)用和可視化 RESTful風格的Web服務(wù),這篇文章主要給大家介紹了關(guān)于Spring Boot中如何使用Swagger的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • 關(guān)于Java的Character類詳解

    關(guān)于Java的Character類詳解

    這篇文章主要介紹了關(guān)于Java的Character類詳解,Java中的Character類是一個包裝類,用于封裝一個基本數(shù)據(jù)類型char的值,它提供了一些靜態(tài)方法來操作字符,需要的朋友可以參考下
    2023-05-05
  • spring使用@Async注解導致循環(huán)依賴問題異常的排查記錄

    spring使用@Async注解導致循環(huán)依賴問題異常的排查記錄

    這篇文章主要介紹了spring使用@Async注解導致循環(huán)依賴問題異常的排查記錄,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08

最新評論