2012-03-30 16 views
13

पर प्रॉपर्टी फ़ाइल का पता नहीं लगा सका, मुझे वास्तव में डीबी में लॉग इन करने के लिए लॉगबैक का समर्थन पसंद है। हालांकि, मुझे क्लासपाथ पर एक संपत्ति फ़ाइल से, विशेष रूप से लॉगबैक की परिवर्तनीय प्रतिस्थापन सुविधा का उपयोग करने में समस्या हो रही है।लॉगबैक वेरिएबल प्रतिस्थापन क्लासपाथ

मेरे संदर्भ: http://logback.qos.ch/manual/configuration.html#variableSubstitution

तो मैं एक बहु मॉड्यूल Maven परियोजना है। अपने वेब मॉड्यूल (जो एक .war फ़ाइल उत्पन्न) में, मैं निम्नलिखित निर्देशिका में मेरे Logback conf फ़ाइलें:

src/main/reesources 
- logback.xml 
- local.properties 
- dev.properties 

मेरे logback.xml इस तरह दिखता है:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 

    <property file="${env}.properties"/> 

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
     <encoder> 
      <pattern>%d{HH:mm:ss.SSS} [%X{messageId}] %-5level %logger{0} - %msg%n 
      </pattern> 
     </encoder> 
    </appender> 

    <appender name="DB" class="ch.qos.logback.classic.db.DBAppender"> 
     <connectionSource class="ch.qos.logback.core.db.DataSourceConnectionSource"> 
      <dataSource class="com.mchange.v2.c3p0.ComboPooledDataSource"> 
       <driverClass>${logback.db.driverClassName}</driverClass> 
       <jdbcUrl>${logback.db.url}</jdbcUrl> 
       <user>${logback.db.user}</user> 
       <password>${logback.db.password}</password> 
      </dataSource> 
     </connectionSource> 
    </appender> 

    <root level="debug"> 
     <appender-ref ref="DB" /> 
    </root> 
</configuration> 

तो जब मैं लाना बिलाव सर्वर, मैं $ {env} इस तरह में पारित होगा:

-Denv=local 

हालांकि, मैं निम्न त्रुटि हो गया, जब मैं सर्वर लाया:

17:45:22,782 WARN com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0 DriverManagerDataSource:107 - Could not load driverClass logback.db.driverClassName_IS_UNDEFINED 
java.lang.ClassNotFoundException: logback.db.driverClassName_IS_UNDEFINED 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523) 

ऐसा लगता है कि लॉगबैक जोरेन को संपत्ति फ़ाइल का पता लगाने में परेशानी हो रही थी।

क्या कोई मुझे बता सकता है कि मैंने क्या गलत किया?

+0

करता बिलाव जावा से प्रणाली चर पारित? कभी-कभी टॉमकैट कुछ मजाकिया सामान करता है। –

+2

मेरे मालिक ने मुझे अपने कंधों को देखकर मेरी समस्या को हल करने में मदद की। '' का उपयोग करने के बजाय, मुझे '' का उपयोग करना चाहिए। शायद यह घर जाने का समय है :) – scabbage

+0

शायद आप इस मुद्दे को अपने आप से बाहर करना चाहते हैं। बहुत बढ़िया। –

उत्तर

16

जैसा कि मैंने टिप्पणी में कहा:

होना चाहिए:

<property resource="${env}.properties"/> 

नहीं

<property file="${env}.properties"/> 
संबंधित मुद्दे