Spring Boot docs有以下示例记录文件:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}"/>
<include resource="org/springframework/boot/logging/logback/file-appender.xml" />
<root level="INFO">
<appender-ref ref="FILE" />
</root>
</configuration>
你能帮我理解${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}
这一行吗?什么是-
?
答案 0 :(得分:4)
与Bash一样,Logback使用:-
作为其默认值运算符。有问题的行是设置LOG_FILE
属性:
LOG_FILE
,请使用LOG_PATH
,请使用后缀为spring.log
LOG_TEMP
,请使用后缀为/spring.log
java.io.tmpdir
,请使用后缀为/spring.log
/tmp/spring.log
答案 1 :(得分:4)
它与Spring无关。
Logback XML配置本身具有这种占位符处理方式,可以用占位符替换占位符。在logback中占位符的语法是${VARNAME}
,如果您想要VARNAME
时不需要默认值,则可以${VARNAME:-DEFAULT}
(参考:Logback Configuration)执行此操作。是的, :-
,按默认值。
然后你引用的内容很容易理解:
${LOG_FILE:- }
${LOG_PATH:- }spring.log
${LOG_TEMP:- }/
${java.io.tmpdir:- }
/tmp
(你真的需要解释上面的意思吗?)