Chr*_*Geo 1 java spring logback
嗨,我想DBAppender在我的Spring Boot应用程序中使用A。我想从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>
Run Code Online (Sandbox Code Playgroud)
在寻找类似解决方案时偶然发现了这一点。由于这仍然无法解决,因此我找到了以下几种方法:
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=
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
2)导入应用程序属性作为属性源:无法在logback.xml中使用Spring属性占位符
<property resource="application.properties" />
Run Code Online (Sandbox Code Playgroud)
3)也许您可以在容器JNDI中注册数据源并改用logback的JNDIConnectionSource?看看其他文章:如何在Spring Boot中使用嵌入式Tomcat容器创建JNDI上下文
| 归档时间: |
|
| 查看次数: |
4136 次 |
| 最近记录: |