偶然發現了這一點的同時尋找一個類似的解決方案。因爲這仍然沒有答案,所以我發現了幾種方法:
1)如果你使用的是Spring Boot 1.3+(你已經指出你不是但是爲了將來的參考),我設法使用了<springProperty>標記可重用application.properties中的相同值。
application.properties(用於嵌入式H2 DB):
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.username=sa
spring.datasource.password=
的logback-spring.xml:
<springProperty name="spring.datasource.driverClassName" source="spring.datasource.driverClassName"/>
<springProperty name="spring.datasource.url" source="spring.datasource.url"/>
<springProperty name="spring.datasource.username" source="spring.datasource.username"/>
<springProperty name="spring.datasource.password" source="spring.datasource.password"/>
<appender name="DB" class="ch.qos.logback.classic.db.DBAppender">
<connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">
<driverClass>${spring.datasource.driverClassName}</driverClass>
<url>${spring.datasource.url}</url>
<user>${spring.datasource.username}</user>
<password>${spring.datasource.password}</password>
</connectionSource>
</appender>
2)導入應用程序屬性屬性source:Unable to use Spring Property Placeholders in logback.xml
<property resource="application.properties" />
3)也許你能夠在容器JNDI中註冊數據源並使用logback'而不是JNDIConnectionSource?看看這個其他帖子:How to create JNDI context in Spring Boot with Embedded Tomcat Container
來源
2016-02-16 03:04:04
jpt
這將永遠不會工作。 Logback對彈簧一無所知,反之亦然。替換屬性只適用於spring管理的bean,logback配置不是spring管理的,所以你不能做那樣的事情。 –