logback 实现给变量指定默认值

logback 实现给变量指定默认值

格式是 ${变量名:-默认值}

**光有冒号还不够,再加条短线后面才是默认值**

    
        /logs${log.folder:-/imeth}/info.log
        
            
            /logs${log.folder:-/imeth}/info.%d{yyyy-MM-dd}.log
            
            30
            ${log.file.size.max:-50}MB
        
        
            INFO
            ACCEPT
            DENY
        
        
        
            
                [%d{yyyy-MM-dd HH:mm:ss}] [%thread] [%-5level] %logger{35} -  %msg%n
            
        
    

logback变量

定义变量

  • 在 logback.xml 中定义
  • 在命令行定义
  • 引入properties文件

在 logback.xml 中定义变量



    
...

在命令行定义变量

在命令行通过大D参数来定义

java -DHOME="/home/logstore" xxx.jar

引入properties文件

在properties文件定义变量。logback引入properties文件后,获得变量。

通过文件路径引入properties文件:


  
...

通过classpath引入properties文件:


  
...

properties文件的格式是 key-value 型:

HOME=/logs

变量的作用域

变量有三个作用域:

  • local 作用域在配置文件内有效
  • context 作用域的有效范围延伸至 logger context
  • system 作用域的范围最广,整个 JVM 内都有效
  • logback 在替换变量时,首先搜索 local 变量,然后搜索 context,然后搜索 system。

如何为变量指定 scope ?


  
  
    /${home}/myApp.log
...
  
...

变量的默认值

在引用一个变量时,如果该变量未定义,需要为其指定默认值,写法是:

${变量名:-默认值}

示例:



    
    
        
            ${logBase}/log.%d{yyyy-MM-dd}.log
            60
        
        
            %d{yy/MM/dd HH:mm:ss.SSS} %-5level %line %logger{15} - %msg %n
            UTF-8
        
    
...

变量使用

使用方式:

${变量名}

示例:参见前面示例中用法。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

你可能感兴趣的:(logback 实现给变量指定默认值)