java - Spring Boot Logback DB Appender 属性

标签 java spring logback

您好,我想在我的 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。

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/

相关文章:

java - 是否有任何命令行函数可以从一个巨大的 Java 文件中返回主类的名称?

java - 设置枚举的值,并解析字符串以获得枚举

java - Spring AOP : Trying to use for logging but getting IllegalArgumentException

java - 如何在 Mac 上设置 Logback?

Java通过Socket发送和接收多条消息

java - 如何获取同一服务的多个实例的所有持久实体

java - Spring/JPA/Hibernate 可以使用简单的 JDBC 兼容驱动程序吗?

java - 在 Spring Boot 测试中获取配置属性类 bean

java - Spring Boot 在哪里存储其默认日志记录设置

java - 从 log4j 切换到 logback