您好,我想在我的 Spring Boot 应用程序中使用 DBAppender
。我想从 application.properties
文件中检索数据库连接属性。但是它似乎不认识他们。
请记住,我使用的是 Spring Boot 1.2.x
,所以我还不能使用 logback-spring.xml
。
我使用的配置如下:
<appender name="DB" class="ch.qos.logback.classic.db.DBAppender">
<connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">
<driverClass>${spring.datasource.driver-class-name}</driverClass>
<url>${spring.datasource.url}</url>
<user>${spring.datasource.username}</user>
<password>${spring.datasource.password}</password>
</connectionSource>
</appender>
最佳答案
在寻找类似的解决方案时偶然发现了这一点。由于这仍然没有答案,这里是我发现的一些方法:
1) 如果您使用的是 Spring Boot 1.3+(您已经指出您不是,但为了将来引用),我设法使用
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) 将应用程序属性导入为属性源: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
关于java - Spring Boot Logback DB Appender 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33186668/