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ı?
mu Tomcat Java sistem değişkenleri geçmesi değil mi? Tomcat bazen komik şeyler yapar. –
Patronum, problemlerimi omuzlarıma bakarak çözmeme yardımcı oldu. ' ' yerine, ' ' kullanmalıyım. Belki eve gitme zamanıdır :) –
scabbage
Muhtemelen bu sorunu kendiniz kapatmak isteyebilirsiniz. Aferin. –