国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 使用springboot logback動態獲取application的配置項

使用springboot logback動態獲取application的配置項

2021-12-09 13:11程序新視界 Java教程

這篇文章主要介紹了使用springboot logback動態獲取application的配置項,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

springboot logback動態獲取application的配置項

在多環境的情況下,logback的日志路徑需要進行針對性配置,也就是需要通過application.yml文件中進行配置。

logback自身支持以下方式配置

?
1
<property name="USER_HOME" value="/home/sebastien" />

但是怎樣才能靈活的配置“/home/sebastien”參數呢,如果不同的環境此參數值不同,那么就需要通過application.yml文件的配置項進行指定。

但是logback.xml加載早于application.yml,如果直接通過${參數key}的形式獲取是無法獲取到對應參數值的。

因此只能使用spring提供的標簽來對此參數進行配置

?
1
<springProperty scope="context" name="LOG_HOME" source="logback.file"/>

對照上面的配置,其中property替換成了springProperty標簽。兩個配置屬性name效果是一樣的,只不過后者的source指向了application.yml文件中的key。注意此處不需要${}形式獲取。

springboot logback配置及動態配置log目錄

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <contextName>xxx-server</contextName>
    <property name="pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg %n"/>
    <property name="pattern-color" value="%yellow(%d{yyyy-MM-dd HH:mm:ss.SSS}) [%thread] %highlight(%-5level) %green(%logger{50}) - %highlight(%msg) %n"/>
    <define name="LOG_HOME" class="com.youzu.dc.dcopsserver.config.LoggerConfig" />
    <!-- 控制臺輸出 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${pattern}</pattern>
        </encoder>
    </appender>
    <!-- 控制臺輸出-帶顏色 -->
    <appender name="CONSOLE-WITH-COLOR" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${pattern-color}</pattern>
        </encoder>
    </appender>
    <!-- 文件輸出 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/xxxx.%d.%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>100MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <maxHistory>30</maxHistory>
            <totalSizeCap>3GB</totalSizeCap>
        </rollingPolicy>
        <encoder>
            <pattern>${pattern}</pattern>
        </encoder>
    </appender>
    <root level="INFO">
        <appender-ref ref="CONSOLE-WITH-COLOR"/>
        <appender-ref ref="FILE"/>
    </root>
</configuration>

子節點一 appender

appender用來格式化日志輸出節點,有倆個屬性name和class,class用來指定哪種輸出策略,常用就是控制臺輸出策略和文件輸出策略。

控制臺輸出appender

?
1
2
3
4
5
6
<property name="pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg %n"/>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
 <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
   <pattern>${pattern}</pattern>
  </encoder>
</appender>

encoder表示輸出格式,具體說明如下:

  • %d表示時間
  • %thread表示線程名
  • %-5level 表示日志級別,允許以五個字符長度輸出
  • %logger{50}表示具體的日志輸出者,比如類名,括號內表示長度
  • %msg表示具體的日志消息,就是logger.info(“xxx”)中的xxx
  • %n表示換行

文件輸入appender

文件輸出主要包括配置:以指定格式將日志輸出到指定文件夾下的文件中,可以配置該文件的名稱、最大大小、保存時間

例如:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<property name="LOG_HOME" value="logs"/>
<property name="pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg %n"/>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    <fileNamePattern>${LOG_HOME}/all.%d.%i.log</fileNamePattern>
    <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
        <maxFileSize>10MB</maxFileSize>
    </timeBasedFileNamingAndTriggeringPolicy>
    <maxHistory>30</maxHistory>
  </rollingPolicy>
  <encoder>
    <pattern>${pattern}</pattern>
    </encoder>
</appender>

上述配置的主要內容是:以指定的格式向logs文件下的文件輸出日志,文件名稱格式被指定為logs/all.日期.索引號.log,日志文件最大大小為10MB,超出則創建新文件,日志文件保留三十天

索引從0開始遞增

rollingPolicy指滾動粗略,具體配置如上。

關于日志文件大小限制也可以使用1GB配置。

root節點-啟用配置

root節點實際上是配置啟用哪種appender,可以添加多個appender。

比如:

?
1
2
3
4
<root level="INFO">
 <appender-ref ref="CONSOLE-WITH-COLOR"/>
  <appender-ref ref="FILE"/>
</root>

表示level為info級別,啟用渲染器CONSOLE-WITH-COLOR和FILE。

按照這樣配置,輸出日志時,控制臺會按照CONSOLE定義的格式輸出,而日志文件會按照CONSOLE-WITH-COLOR的配置去輸出。

動態配置log目錄

?
1
2
3
4
5
6
import ch.qos.logback.core.PropertyDefinerBase
class LoggerConfig : PropertyDefinerBase() {
    override fun getPropertyValue(): String {
        return "${ServerConfig.applicationPath}/logs"
    }
}

獲取jar目錄路徑

?
1
2
3
4
5
6
7
/**
 *  獲取jar的絕對路徑文件夾
 */
fun getApplicationPath(): String {
    val h = ApplicationHome(FileUtils::class.java)
    return h.source.parentFile.toString()
}

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家.

原文鏈接:https://hello.blog.csdn.net/article/details/79122893

延伸 · 閱讀

精彩推薦
  • Java教程Java8中Stream使用的一個注意事項

    Java8中Stream使用的一個注意事項

    最近在工作中發現了對于集合操作轉換的神器,java8新特性 stream,但在使用中遇到了一個非常重要的注意點,所以這篇文章主要給大家介紹了關于Java8中S...

    阿杜7482021-02-04
  • Java教程20個非常實用的Java程序代碼片段

    20個非常實用的Java程序代碼片段

    這篇文章主要為大家分享了20個非常實用的Java程序片段,對java開發項目有所幫助,感興趣的小伙伴們可以參考一下 ...

    lijiao5352020-04-06
  • Java教程升級IDEA后Lombok不能使用的解決方法

    升級IDEA后Lombok不能使用的解決方法

    最近看到提示IDEA提示升級,尋思已經有好久沒有升過級了。升級完畢重啟之后,突然發現好多錯誤,本文就來介紹一下如何解決,感興趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學習使用Java,感興趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程小米推送Java代碼

    小米推送Java代碼

    今天小編就為大家分享一篇關于小米推送Java代碼,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧...

    富貴穩中求8032021-07-12
  • Java教程xml與Java對象的轉換詳解

    xml與Java對象的轉換詳解

    這篇文章主要介紹了xml與Java對象的轉換詳解的相關資料,需要的朋友可以參考下...

    Java教程網2942020-09-17
  • Java教程Java BufferWriter寫文件寫不進去或缺失數據的解決

    Java BufferWriter寫文件寫不進去或缺失數據的解決

    這篇文章主要介紹了Java BufferWriter寫文件寫不進去或缺失數據的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望...

    spcoder14552021-10-18
  • Java教程Java實現搶紅包功能

    Java實現搶紅包功能

    這篇文章主要為大家詳細介紹了Java實現搶紅包功能,采用多線程模擬多人同時搶紅包,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙...

    littleschemer13532021-05-16
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 欧美日韩一二三区 | 欧美日本高清 | www.av在线| 日韩色区 | 欧美久久久久久久久久久久久久 | 91丁香婷婷综合久久欧美 | 成人精品在线视频 | 国产精品久久久久久久久 | 久久91久久久久麻豆精品 | 亚洲精品乱码久久久久久花季 | 亚洲 中文 欧美 日韩 在线观看 | 国产精品亚洲精品 | 日韩精品中文字幕在线 | 青草精品 | 亚洲精品久久久久久久久久久 | 久久国产欧美日韩精品 | 欧美视频一二 | 涩涩视频观看 | 黄色片网址在线观看 | 国产黄色av | 午夜电影网 | 国产精品久久久久久久久免费 | 久久久久久婷婷 | 亚洲人成网亚洲欧洲无码 | 日韩欧美国产精品综合嫩v 在线视频 中文字幕 | 免费一区二区 | 国产精品亚洲综合 | 国产一区二区高清在线 | 亚洲成人激情在线 | 黄在线免费观看 | 综合久久网 | 日本精品久久 | 中文字幕一区二区三区四区五区 | 日韩成人影片 | 日韩亚洲一区二区 | 91精品国产人妻国产毛片在线 | 欧美日韩视频在线第一区 | 欧美国产伦久久久久久 | 久久久美女 | 久久久久久久久成人 | 日韩一区二区三区在线观看 |