在spring-boot中指定logback属性的默认值

时间:2017-07-12 12:59:49

标签: spring spring-boot logback

<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之前会先处理它?

2 个答案:

答案 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