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

Spring Boot整合logback一個簡單的日志集成架構(gòu)

 更新時間:2019年01月04日 15:51:40   作者:希爾伯特  
今天小編就為大家分享一篇關(guān)于Spring Boot整合logback一個簡單的日志集成架構(gòu),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

一、業(yè)務(wù)需求

在項目開發(fā)和運(yùn)維過程中需要通過日志來分析問題,解決問題以保證項目的正常運(yùn)行。通過SpringBoot自帶的日志管理相對比較簡單,已無法滿足日常的運(yùn)維需求,需要對日志文件進(jìn)行分時分類管理,剛好通過學(xué)習(xí)接觸到了logback日志系統(tǒng)。因此便決定將其加入到項目框架之中。

二、logback簡介

至于簡介,可自行網(wǎng)上查閱相關(guān)文檔文獻(xiàn),這里不做詳細(xì)描述,畢竟不是本文主要目的。只需理解它很好的實現(xiàn)了slf4j,是log4j的再發(fā)展即可。

三、具體實施方案(僅供參考)

1、引入依賴包

其實不需要引入任何依賴,Spring Boot 都為我們做好了(不得不感嘆技術(shù)的強(qiáng)大與發(fā)展之快,不管是好是壞,可以很好的提高開發(fā)效率)。

2、配置文件

特別說明:這里logback.xml不是在默認(rèn)的 src/main/resources 目錄下因此需要在application.properties里配置路徑,由于項目是通過Spring Cloud Config管理的配置文件,但是配置內(nèi)容都一樣,只需在配置文件中加入以下配置即可:

logging.config=classpath:log/logback.xml

2.1 屬性文件

\src\main\resources\log\logback.properties

說明:定義日志輸出位置、文件大小、保存時間和日志級別。

此文件也可通過Spring Cloud Config管理,這里不做詳細(xì)說明了,解題思路可以參看《Servlet+MyBatis項目轉(zhuǎn)Spring Cloud微服務(wù),多數(shù)據(jù)源配置修改建議》http://m.fzitv.net/article/154043.htm

logback.path=.
logback.maxFileSize=50MB
logback.maxHistory=30
logback.level=INFO

2.2 xml文件

\src\main\resources\log\logback.xml

說明:可看文件中注釋,根據(jù)需求做相應(yīng)調(diào)整。

<?xml version="1.0" encoding="UTF-8"?>
<!-- 日志級別從低到高分為TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果設(shè)置為WARN,則低于WARN的信息都不會輸出 -->
<!-- scan:當(dāng)此屬性設(shè)置為true時,配置文件如果發(fā)生改變,將會被重新加載,默認(rèn)值為true -->
<!-- scanPeriod:設(shè)置監(jiān)測配置文件是否有修改的時間間隔,如果沒有給出時間單位,默認(rèn)單位是毫秒。當(dāng)scan為true時,此屬性生效。默認(rèn)的時間間隔為1分鐘。 -->
<!-- debug:當(dāng)此屬性設(shè)置為true時,將打印出logback內(nèi)部日志信息,實時查看logback運(yùn)行狀態(tài)。默認(rèn)值為false。 -->
<configuration scan="true" scanPeriod="10 seconds">
  <property resource="log/logback.properties" />
  <!--輸出到控制臺-->
  <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <!--此日志appender是為開發(fā)使用,只配置最底級別,控制臺輸出的日志級別是大于或等于此級別的日志信息-->
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
      <level>info</level>
    </filter>
    <encoder>
      <!--格式化輸出:%d表示日期,%thread表示線程名,%-5level:級別從左顯示5個字符寬度,%line:行號,%msg:日志消息,%n是換行符-->
      <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level [%logger{50}] - %msg%n</pattern>
      <!-- 設(shè)置字符集 -->
      <charset>UTF-8</charset>
    </encoder>
  </appender>
  <!--輸出到文件-->
  <!-- 時間滾動輸出 level為 ${logback.level} 日志 -->
  <appender name="STDOUT" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <!-- 正在記錄的日志文件的路徑及文件名 -->
    <file>${logback.path}/log_${logback.level}.log</file>
    <!--日志文件輸出格式-->
    <encoder>
      <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level [%logger{50}] - %msg%n</pattern>
      <charset>UTF-8</charset> <!-- 設(shè)置字符集 -->
    </encoder>
    <!-- 日志記錄器的滾動策略,按日期,按大小記錄 -->
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <!-- 日志歸檔 -->
      <fileNamePattern>${logback.path}/${logback.level}/log-${logback.level}-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
      <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
        <maxFileSize>${logback.maxFileSize}</maxFileSize>
      </timeBasedFileNamingAndTriggeringPolicy>
      <!--日志文件保留天數(shù)-->
      <maxHistory>${logback.maxHistory}</maxHistory>
    </rollingPolicy>
    <!-- 此日志文件只記錄${logback.level}級別的 -->
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
      <level>${logback.level}</level>
      <onMatch>ACCEPT</onMatch>
      <onMismatch>DENY</onMismatch>
    </filter>
  </appender>
  <!--
    <logger>用來設(shè)置某一個包或者具體的某一個類的日志打印級別、
    以及指定<appender>。<logger>僅有一個name屬性,
    一個可選的level和一個可選的addtivity屬性。
    name:用來指定受此logger約束的某一個包或者具體的某一個類。
    level:用來設(shè)置打印級別,大小寫無關(guān):TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
       還有一個特俗值INHERITED或者同義詞NULL,代表強(qiáng)制執(zhí)行上級的級別。
       如果未設(shè)置此屬性,那么當(dāng)前l(fā)ogger將會繼承上級的級別。
    addtivity:是否向上級logger傳遞打印信息。默認(rèn)是true。
  -->
  <!--<logger name="org.springframework.web" level="info"/>
  <logger name="org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor" level="INFO"/>-->
  <!--
    root節(jié)點(diǎn)是必選節(jié)點(diǎn),用來指定最基礎(chǔ)的日志輸出級別,只有一個level屬性
    level:用來設(shè)置打印級別,大小寫無關(guān):TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
    不能設(shè)置為INHERITED或者同義詞NULL。默認(rèn)是DEBUG
    可以包含零個或多個元素,標(biāo)識這個appender將會添加到這個logger。
  -->
  <root level="${logback.level}">
    <appender-ref ref="CONSOLE" />
    <appender-ref ref="STDOUT" />
  </root>
  <!--開發(fā)環(huán)境:打印控制臺-->
  <!-- <springProfile name="dev">
     <logger name="team.biteeny" level="debug"/>
   </springProfile>-->
  <!--生產(chǎn)環(huán)境:輸出到文件-->
  <!--<springProfile name="pro">-->
  <!--<root level="info">-->
  <!--<appender-ref ref="CONSOLE" />-->
  <!--<appender-ref ref="DEBUG_FILE" />-->
  <!--<appender-ref ref="INFO_FILE" />-->
  <!--<appender-ref ref="ERROR_FILE" />-->
  <!--<appender-ref ref="WARN_FILE" />-->
  <!--</root>-->
  <!--</springProfile>-->
</configuration>

通過以上步驟即可完成logback日志系統(tǒng)的簡單集成,可以做到分時分文件大小以及備份保留時間等日志的輸出管理。

如果想需要調(diào)試輸出一些日志信息,只需在相應(yīng)的類中加入類代碼即可:

private static final Logger log = LoggerFactory.getLogger(ClassName.class);
// 需要輸出的日志位置
log.info("日志信息");
log.error("日志信息");
……

四、小結(jié)

以上只是對日志系統(tǒng)的簡單應(yīng)用,這其中的妙處可能還沒有完全體會,把實施過程記錄于此,希望拋磚引玉為大家提供一條解題思路。

有不到之處請大家前來指正,把技術(shù)死磕到底!

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • Spring Boot結(jié)成MyBatis-Plus最全配置指南

    Spring Boot結(jié)成MyBatis-Plus最全配置指南

    本文主要介紹了Spring Boot結(jié)成MyBatis-Plus最全配置指南,包括依賴引入、配置數(shù)據(jù)源、Mapper 掃描、基本CRUD操作等,具有一定的參考價值,感興趣的可以了解一下
    2025-03-03
  • MyBatisPlus利用Service實現(xiàn)獲取數(shù)據(jù)列表

    MyBatisPlus利用Service實現(xiàn)獲取數(shù)據(jù)列表

    這篇文章主要為大家詳細(xì)介紹了怎樣使用 IServer 提供的 list 方法查詢多條數(shù)據(jù),這些方法將根據(jù)查詢條件獲取多條數(shù)據(jù),感興趣的可以了解一下
    2022-06-06
  • JDBC編程的詳細(xì)步驟

    JDBC編程的詳細(xì)步驟

    這篇文章主要介紹了JDBC編程的詳細(xì)步驟,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)JDBC編程的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-05-05
  • 詳解springmvc之json數(shù)據(jù)交互controller方法返回值為簡單類型

    詳解springmvc之json數(shù)據(jù)交互controller方法返回值為簡單類型

    這篇文章主要介紹了springmvc之json數(shù)據(jù)交互controller方法返回值為簡單類型,非常具有實用價值,需要的朋友可以參考下
    2017-05-05
  • Java 內(nèi)存安全問題的注意事項

    Java 內(nèi)存安全問題的注意事項

    內(nèi)存安全問題是每個程序員開發(fā)時都需要面對的問題,本文介紹了JVM管理內(nèi)存的原理以及內(nèi)存安全問題需要注意的地方,有此需求的朋友可以參考下本文
    2021-06-06
  • Java實現(xiàn)學(xué)生管理系統(tǒng)

    Java實現(xiàn)學(xué)生管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Java實現(xiàn)學(xué)生管理系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Java?NIO?中Buffer?緩沖區(qū)解析

    Java?NIO?中Buffer?緩沖區(qū)解析

    這篇文章主要介紹了Java?NIO?中Buffer?緩沖區(qū),Java?NIO?中的?Buffer?用于和?NIO?通道進(jìn)行交互。數(shù)據(jù)是通道讀取到緩沖區(qū),從緩沖區(qū)寫入到通道中的。下面內(nèi)容希望幫助帶大家理解
    2022-02-02
  • 基于Transactional事務(wù)的使用以及注意說明

    基于Transactional事務(wù)的使用以及注意說明

    這篇文章主要介紹了Transactional事務(wù)的使用以及注意說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 詳解springMVC容器加載源碼分析

    詳解springMVC容器加載源碼分析

    這篇文章主要介紹了詳解springMVC容器加載源碼分析,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • JavaWeb Servlet實現(xiàn)網(wǎng)頁登錄功能

    JavaWeb Servlet實現(xiàn)網(wǎng)頁登錄功能

    這篇文章主要為大家詳細(xì)介紹了JavaWeb Servlet實現(xiàn)網(wǎng)頁登錄功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07

最新評論

胶州市| 彭阳县| 杂多县| 商水县| 长丰县| 右玉县| 南皮县| 康定县| 大城县| 红安县| 家居| 松溪县| 左权县| 武城县| 九寨沟县| 深圳市| 平塘县| 杂多县| 辛集市| 宁波市| 仪陇县| 革吉县| 宜州市| 遂溪县| 仙游县| 新兴县| 阳信县| 海伦市| 涡阳县| 临江市| 平顺县| 历史| 邵阳市| 黑龙江省| 汽车| 周宁县| 扎鲁特旗| 女性| 郧西县| 武乡县| 光泽县|