2012-03-30 18 views
13

Bir DB'ye oturum açmak için Logback'in desteğini gerçekten çok seviyorum. Ancak, Logback'in değişken değiştirme özelliğini, özellikle de sınıf yolundaki bir özellik dosyasından kullanmayla ilgili sorun yaşıyorum.Logback değişken değiştirme, özellik yolunu sınıf yolunda bulamadı

Benim referansı:

http://logback.qos.ch/manual/configuration.html#variableSubstitution Bu yüzden bir çok modül Maven projesi var. (Bir .war dosyası oluşturur) Benim web modülünde, aşağıdaki dir benim Logback conf dosyaları var:

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

Benim logback.xml şöyle görünür: Ben getirmek Yani

<?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> 

: Ben sunucu konuyu açtığında aşağıdaki hata var, ancak

-Denv=local 

: Tomcat sunucusunun kadar, böyle $ {env} içinde geçerdi

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) 

Logback Joran, özellik dosyasını bulmakta sorun yaşıyor gibi görünüyor.

Neyi yanlış yaptığımı bilen var mı?

+0

mu Tomcat Java sistem değişkenleri geçmesi değil mi? Tomcat bazen komik şeyler yapar. –

+2

Patronum, problemlerimi omuzlarıma bakarak çözmeme yardımcı oldu. '' yerine, '' kullanmalıyım. Belki eve gitme zamanıdır :) – scabbage

+0

Muhtemelen bu sorunu kendiniz kapatmak isteyebilirsiniz. Aferin. –

cevap

16

Ben yorum söylediği gibi:

olmalı:

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

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