亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Springboot如何使用logback實現(xiàn)多環(huán)境配置?

 更新時間:2021年06月15日 17:22:10   作者:安卓開發(fā)程序員  
上一篇文章中老顧介紹了logback基本配置,了解了日志配置的基本方式.我們平時在系統(tǒng)開發(fā)時,開發(fā)環(huán)境與生產(chǎn)環(huán)境的日志配置會不一樣;那今天老顧就跟大家介紹一下如何實現(xiàn)多環(huán)境配置,需要的朋友可以參考下

前言

Logback是由log4j創(chuàng)始人設計的又一個開源日記組件,Logback 當前分成三個模塊:logback-core,logback- classic和logback-access。logback-core是其它兩個模塊的基礎模塊,logback-classic是log4j的一個改良版本。此外logback-classic完整實現(xiàn)SLF4J API使你可以很方便地更換成其它日記系統(tǒng)如log4j或JDK14 Logging。logback-access訪問模塊與Servlet容器集成提供通過Http來訪問日記的功能

引入依賴

引入logback所需要的依賴

<dependency>                                                                           
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-core</artifactId>
    <version>1.1.6</version>
</dependency>
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.1.6</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.18</version>
</dependency>

如果使用spring-boot,兼容logback,默認已經(jīng)集成了這些文件,所以就不需要自己依賴注入了,直接在項目中使用就行了。

配置項值方案

利用Spring boot中application.yml的spring.profiles.active

環(huán)境配置,dev開發(fā)環(huán)境和部署環(huán)境連接的數(shù)據(jù)庫地址、debug模式等等都是不同的,為了區(qū)分dev開發(fā)環(huán)境配置和生產(chǎn)環(huán)境配置,可以創(chuàng)建兩個yml文件,什么環(huán)境使用相應的配置文件:

  • application.yml:公共配置文件,里面可以通過spring.profiles.active=dev來指定使用哪個配置文件
  • application-dev.yml:開發(fā)環(huán)境配置文件
  • application-prod.yml:生產(chǎn)環(huán)境配置文件

注意:

1、當公共配置文件application.yml和dev.yml(或prod.yml)同時存在同一個配置的時候,以dev.yml(prod.yml)配置文件為主
2、當配置項只在公共application.yml文件中有的時候,以公共配置為主
3、可以
把公共配置項放到application.yml中

我們在看dev.xml和prod.xml配置文件

dev.xml配置

#dev.xml中的配置,用戶開發(fā)環(huán)境
log: 
  path: /Users/gujiachun/Downloads
  level: debug

prod.xml配置

#prod.xml中的配置,用戶生產(chǎn)環(huán)境
log: 
  path: /Users/gujiachun/Downloads
  level: info

此方案的設計原理就是,不同環(huán)境不同的配置值;然后在logback-spring.xml中使用此配置值。

上圖就是logback-spring.xml配置,里面有個重要的就是springProperty標簽,可以利用這個標簽引用到application.yml中的值(包含dev.xml、prod.xml);log.level和log.path的值就可以在logback-spring.xml中使用,使用方式 l o g P a t h 、 {logPath}、 logPath、{logLevel}。

測試代碼

啟動測試,指定spring.profiles.active=dev或prod;我們發(fā)現(xiàn)在logPath目錄出現(xiàn)對應的日志文件

因為不同的環(huán)境,我們配置成日志級別不一樣,dev對應debug,prod對應info;日志文件內(nèi)容不同環(huán)境對應不同內(nèi)容

dev環(huán)境輸出

2020-01-04 10:01:50,298 -- debug...
2020-01-04 10:01:50,298 -- info...
2020-01-04 10:01:50,298 -- error...

prod環(huán)境輸出

2020-01-04 10:03:55,198 -- info...
2020-01-04 10:03:55,198 -- error...

外部配置文件方案

另一種更簡單的方式,可以利用logging.config指定配置文件,而且有一個好處可以不一定要取名logback-spring.xml;我們來看一下

application-dev.xml環(huán)境

#日志相關配置
logging:
  config: classpath:conf/logback-dev.xml

application-prod環(huán)境

#日志相關配置
logging:
  config: classpath:conf/logback-prd.xml

logback-dev.xml配置

logback-prod.xml配置

啟動指定spring.profiles.active=dev

在控制臺輸出了

而在日志文件

日志內(nèi)容

2020-01-04 11:56:10  [39mDEBUG[0;39m 7454  --- [main]  [36mc.r.g.t.LoggerTest[0;39m : debug:.... 

為什么只有debug日志,沒有info、error;這個是因為日志文件中加了個過濾器

<filter class="ch.qos.logback.classic.filter.LevelFilter">
    <level>${logLevel}</level>
    <onMatch>ACCEPT</onMatch>
    <onMismatch>DENY</onMismatch>
</filter>

此過濾器中的屬性onMatch和onMismatch,匹配日志級別就接受,不匹配就不接受。所以只接受debug級別。

啟動指定spring.profiles.active=prod

控制臺輸出

日志文件

生成了4個文件,也是因為過濾器,生產(chǎn)環(huán)境的日志級別為info,所以debug日志文件里面為空。

springProfile方案

springProfile標簽在logback.xml中可以起到區(qū)分不同環(huán)境分支;如果我們需要配置不同環(huán)境,不同的輸出方式,如:dev環(huán)境輸出到控制臺以及文件,prod環(huán)境只要輸出到文件。

logback-spring.xml配置

這樣就可以在同一個配置xml文件中,配置不同的環(huán)境值。

總結(jié)

上面介紹了幾個方案,小伙伴們可以選擇適合自己業(yè)務的方案,下一篇老顧介紹日志在集群中的方式。謝謝?。?!

到此這篇關于Springboot如何使用logback實現(xiàn)多環(huán)境配置?的文章就介紹到這了,更多相關logback實現(xiàn)多環(huán)境配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java HttpURLConnection使用方法詳解

    Java HttpURLConnection使用方法詳解

    這篇文章主要為大家詳細介紹了Java HttpURLConnection使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Java利用Request請求如何獲取IP地址對應的省份、城市詳解

    Java利用Request請求如何獲取IP地址對應的省份、城市詳解

    之前已經(jīng)給大家介紹了關于Java用Request請求獲取IP地址的相關內(nèi)容,那么下面這篇文章將給大家進入深入的介紹,關于Java利用Request請求如何獲取IP地址對應省份、城市的相關資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-10-10
  • Java關鍵字詳解之final static this super的用法

    Java關鍵字詳解之final static this super的用法

    this用來調(diào)用目前類自身的成員變量,super多用來調(diào)用父類的成員,final多用來定義常量用的,static定義靜態(tài)變量方法用的,靜態(tài)變量方法只能被類本身調(diào)用,下文將詳細介紹,需要的朋友可以參考下
    2021-10-10
  • springcloud nacos的賦值均衡和動態(tài)刷新

    springcloud nacos的賦值均衡和動態(tài)刷新

    nacos是一個分布式的配置中心和注冊發(fā)現(xiàn)中心,這篇文章主要介紹了springcloud nacos的賦值均衡和動態(tài)刷新,需要的朋友可以參考下
    2024-05-05
  • Java中使用ForkJoinPool的實現(xiàn)示例

    Java中使用ForkJoinPool的實現(xiàn)示例

    ForkJoinPool是一個功能強大的Java類,用于處理計算密集型任務,本文主要介紹了Java中使用ForkJoinPool的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • springboot使用GuavaCache做簡單緩存處理的方法

    springboot使用GuavaCache做簡單緩存處理的方法

    這篇文章主要介紹了springboot使用GuavaCache做簡單緩存處理的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • Java通過BCrypt加密過程詳解

    Java通過BCrypt加密過程詳解

    這篇文章主要介紹了Java通過BCrypt加密過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • Spring?Boot整合?NoSQL?數(shù)據(jù)庫?Redis詳解

    Spring?Boot整合?NoSQL?數(shù)據(jù)庫?Redis詳解

    這篇文章主要為大家介紹了Spring?Boot整合?NoSQL?數(shù)據(jù)庫?Redis詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • MyBatis入門介紹(超簡單)

    MyBatis入門介紹(超簡單)

    mybatis是Java的持久層框架, JAVA操作數(shù)據(jù)庫是通過jdbc來操作的,而mybatis是對jdbc的封裝。下文給大家介紹mybatis入門知識,感興趣的朋友參考下吧
    2017-08-08
  • Springcloud+Mybatis使用多數(shù)據(jù)源的四種方式(小結(jié))

    Springcloud+Mybatis使用多數(shù)據(jù)源的四種方式(小結(jié))

    這篇文章主要介紹了Springcloud+Mybatis使用多數(shù)據(jù)源的四種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09

最新評論