2011-11-13 9 views
6

मैं scanPeriod संपत्ति के लिए परिवर्तनीय प्रतिस्थापन का उपयोग करने की कोशिश कर रहा हूं जैसे कि मेरे पास कई पर्यावरण फ़ाइलें हो सकती हैं।लॉगबैक स्कैनरियोड गुणों के लिए परिवर्तनीय प्रतिस्थापन को पहचानने में असमर्थ है

ऐसा लगता है कि लॉगबैक कुछ गुणों के लिए variable substitution को पहचानने में असमर्थ है।

उदाहरण के लिए

scanPeriod संपत्ति:

Logback विन्यास:

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

logback संपत्ति के 10 मिनट का डिफ़ॉल्ट मान लेने के लिए निर्दिष्ट परिभाषित नहीं है।

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 कोर 0.9.30

संपादित करें: इस के लिए एक Jira रिपोर्ट दायर - http://jira.qos.ch/browse/LBCLASSIC-307

अद्यतन: 28 दिसंबर 2011 इसे एक मेजर के रूप में चिह्नित किया गया है, और सेकी गुलुकू ने देखा। : डी

अद्यतन: 12 जून 2012 अभी भी कोई अपडेट नहीं है। जिरा में बाएं टिप्पणी।

अद्यतन: 12 जुलाई 2012 वैध बग के रूप में स्वीकृत। 1.0.7

उत्तर

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); 
+0

सिर के लिए धन्यवाद, yepp। –