logback变量
定義變量
- 在 logback.xml 中定義
- 在命令行定義
- 引入properties文件
在 logback.xml 中定義變量
<?xml version="1.0" encoding="UTF-8"?> <configuration><property name="logBase" value="/logs"/> ... </configuration>在命令行定義變量
在命令行通過大D參數(shù)來定義
java -DHOME="/home/logstore" xxx.jar引入properties文件
在properties文件定義變量。logback引入properties文件后,獲得變量。
通過文件路徑引入properties文件:
<configuration><property file="/AppPath/logbackVars.properties" /> ... </configuration>通過classpath引入properties文件:
<configuration><property resource="logbackVars.properties" /> ... </configuration>properties文件的格式是 key-value 型:
HOME=/logs變量的作用域
變量有三個作用域:
- local 作用域在配置文件內(nèi)有效
- context 作用域的有效范圍延伸至 logger context
- system 作用域的范圍最廣,整個 JVM 內(nèi)都有效
logback 在替換變量時,首先搜索 local 變量,然后搜索 context,然后搜索 system。
如何為變量指定 scope ?
<configuration><property scope="context" name="home" value="/logs" /><appender name="FILE" class="ch.qos.logback.core.FileAppender"><file>/${home}/myApp.log</file> ...</appender> ... </configuration>變量的默認(rèn)值
在引用一個變量時,如果該變量未定義,需要為其指定默認(rèn)值,寫法是:
${變量名:-默認(rèn)值}示例:
<?xml version="1.0" encoding="UTF-8"?> <configuration><property name="logBase" value="${HOME:-/logs}"/><appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><FileNamePattern>${logBase}/log.%d{yyyy-MM-dd}.log</FileNamePattern><MaxHistory>60</MaxHistory></rollingPolicy><encoder><pattern>%d{yy/MM/dd HH:mm:ss.SSS} %-5level %line %logger{15} - %msg %n</pattern><charset>UTF-8</charset></encoder></appender> ... </configuration>變量使用
使用方式:
${變量名}示例:參見前面示例中用法。
總結(jié)
- 上一篇: 【ntp】虚拟机时间莫名异常
- 下一篇: 花甲怎么洗最快最干净