2011-11-13 6 views
6

Próbuję użyć substytucji zmiennych dla właściwości scanPeriod, tak, że mogę mieć wiele plików środowiska.Logback nie może rozpoznać substytucji zmiennych dla właściwości scanPeriod

Wygląda na to, że Logback nie jest w stanie rozpoznać określonych właściwości dla variable substitution.

Na przykład właściwość scanPeriod: konfiguracja

Logback:

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

określono wziąć domyślną wartość 10 minut własności logback nie jest zdefiniowana.

właściwości Logback:

scan=true 
scan-interval=30 seconds 

Ta nieruchomość należy zastąpić domyślną konfigurację 10 minut.

błąd Logback:

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

Według Duration API format czas jest poprawny.

to przy użyciu:

  • slf4j 1.6.2
  • logback Classis 0.9.30
  • rdzeń logback 0.9.30

EDIT: Zapisano raport Jira tego - http://jira.qos.ch/browse/LBCLASSIC-307

AKTUALIZACJA: 28 grudnia 2011 Jest to oznaczone jako Major i oglądane przez Ceki Gulcu. : D

AKTUALIZACJA: 12 Cze 2012 Nadal brak aktualizacji. Lewy komentarz w JIRA.

AKTUALIZACJA: 12 lipca 2012 Zaakceptowany jako poprawny błąd. Aby rozwiązać w 1.0.7

Odpowiedz

2

Według Duration API który pisał, można również użyć (bez spacji):

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

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

Dzięki za heads up, yepp. –