在<tr><td>Value1</td><td>Value2</td></tr>
应用程序中,我正在尝试为spring-boot
配置默认目录。
通常,在logback
我会这样配置:
logback.xml
分隔符为<property name="logFile.dir" value="${catalina.home:-/tmp}/logs" />
。
但是,在:-
:
我必须这样配置:
application.properties
需要将分隔符从logging.file=${catalina.home:/tmp}/logs/sportslight.log
更改为:-
。
问题是:
:
,哪个是正确的分隔符,logback.xml
或:-
?:
中,为什么只有application.properties
有效,是因为spring-boot在将值传递给logback之前会先处理它? 答案 0 :(得分:5)
在logback.xml中,正确的分隔符为:-
。 the logback docs中的更多详细信息。
在Spring中,正确的分隔符为:
,因为Spring支持${my.property:defaultValue}
语法。
因此,当面对变量替换的默认值分隔符选择时,logback作者选择了:-
而Spring作者选择了:
。
答案 1 :(得分:1)
在logback.xml或logback-spring.xml中,您可以为系统属性和项目属性设置默认值(或者可以说是spring属性)。 / p>
1)对于系统属性,您可以简单地使用:-
语法。在下面的示例中,ThresholdFilter
的默认级别为ERROR
。
<configuration>
<appender name="sentry" class="io.sentry.logback.SentryAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>${sentryLevel:-ERROR}</level>
</filter>
</appender>
</configuration>
您可以通过使用诸如-DsentryLevel=INFO
之类的Java进程来覆盖它。
2)对于项目属性/ spring属性,可以在defaultValue
元素中设置springProperty
。
<configuration>
<springProperty scope="context" name="sentryLevel" source="your.prop.path" defaultValue="ERROR"/>
<appender name="sentry" class="io.sentry.logback.SentryAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>${sentryLevel}</level>
</filter>
</appender>
</configuration>
您可以通过更改application.properties或application.yml覆盖它。
your.prop.path=INFO