2011-11-13 7 views
6

Sto tentando di utilizzare la sostituzione variabile per la proprietà scanPeriod in modo da poter disporre di più file di ambiente.Logback non è in grado di riconoscere la sostituzione delle variabili per le proprietà scanPeriod

Sembra che Logback non sia in grado di riconoscere variable substitution per determinate proprietà.

Ad esempio la scanPeriod struttura: configurazione

Logback:

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

specificato per tener valore predefinito di 10 minuti di proprietà logback non è definito.

proprietà logback:

scan=true 
scan-interval=30 seconds 

Questa struttura dovrebbe ignorare la configurazione di default di 10 minuti.

errore Logback:

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

Secondo il Duration API, il formato di durata è corretto.

questo sta usando:

  • slf4j 1.6.2
  • logback Classis 0.9.30
  • nucleo logback 0.9.30

EDIT: ha presentato una relazione di Jira per questo - http://jira.qos.ch/browse/LBCLASSIC-307

AGGIORNAMENTO: 28 dic 2011 Questo è contrassegnato come maggiore, e guardato da Ceki Gulcu. : D

AGGIORNAMENTO: 12 giu 2012 Ancora nessun aggiornamento. Commento lasciato in JIRA.

AGGIORNAMENTO: 12 luglio 2012 Accettato come bug valido. Per risolvere in 1.0.7

risposta

2

Secondo il Duration API che hai postato, è anche possibile utilizzare (senza lo spazio):

<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

Grazie per l'avviso, si. –