log4j配置獲取系統屬性及默認值


一、使用場景

  1.因某些原因,我們可能將log4j中的配置變量化,進行動態獲取

  2.動態獲取內容不存在時,我們希望能夠賦上通用的值

二、語法

  • 單變量:

${前綴:變量:-默認值}

  如:

  ${sys:i2cc.base.dir:-/tmp/i2cc}/logs

  • 多個候選變量:

    ${前綴:變量:-${前綴:變量:-默認值}}

  如:

  ${sys:i2cc.base.dir:-${sys:i2cc.base:-/tmp/i2cc}}/logs

三、測試

  在idea Run/Debug Configurations中VM options中先后配置-Di2cc.base.dir=/tmp/a/ 和-Di2cc.base=/tmp/b/及不配置

  

1 public class FunctionTest {
2     private static final Logger logger = LogManager.getLogger(FunctionTest.class);
3     public static void main(String[] args){
4         logger.error("asdfasdf");
5     }
6 }
View Code

四、結果

  啟動程序后,日志將分別寫到

# -Di2cc.base.dir=/tmp/a/

/tmp/a/

# -Di2cc.base=/tmp/b/

/tmp/b/

# 不配置

/tmp/i2cc


免責聲明!

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



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