Logback无法识别scanPeriod属性的变量替换

时间:2011-11-13 04:21:39

标签: java logback

我正在尝试对scanPeriod属性使用变量替换,以便我可以拥有多个环境文件。

似乎Logback无法识别某些属性的variable substitution

例如scanPeriod属性:

Logback配置:

<configuration scan="${scan:-true}" scanPeriod="${scan-interval:-10 minutes}">

未定义默认值为10分钟的logback属性。

Logback属性:

scan=true
scan-interval=30 seconds

此属性应覆盖默认配置10分钟。

Logback错误:

java.lang.IllegalArgumentException: String value [${scan-interval:-10 minutes}] is not in the expected format.

根据Duration API,持续时间格式是正确的。

这是使用:

  • slf4j 1.6.2
  • logback classis 0.9.30
  • logback core 0.9.30

编辑:提交Jira报告 - http://jira.qos.ch/browse/LBCLASSIC-307

更新: 2011年12月28日这是一个专业,由Ceki Gulcu看。 :d

更新: 2012年6月12日仍然没有更新。在JIRA留下评论。

更新: 2012年7月12日被接受为有效的错误。修复1.0.7

2 个答案:

答案 0 :(得分:2)

根据您发布的Duration API,您也可以使用(没有空格):

<configuration scan="${scan:-true}" scanPeriod="${scan-interval:-10minutes}">

private static final Pattern DURATION_PATTERN = Pattern.compile(DOUBLE_PART
                              + "\\s*" + UNIT_PART, Pattern.CASE_INSENSITIVE);

答案 1 :(得分:0)

http://jira.qos.ch/browse/LOGBACK-396

接受为有效错误并在1.0.7中修复