Java Logback变量替换在类路径上找不到属性文件

Java Logback变量替换在类路径上找不到属性文件,java,maven,logging,logback,Java,Maven,Logging,Logback,我真的很喜欢Logback对登录DB的支持。然而,我在使用Logback的变量替换特性时遇到了问题,更具体地说,是从类路径上的属性文件中 我的推荐人: 所以我有一个多模块的Maven项目。在我的web模块(生成一个.war文件)中,我的Logback conf文件位于以下目录中: src/main/resources - logback.xml - local.properties - dev.properties 我的logback.xml文件如下所示: <?xml version="

我真的很喜欢Logback对登录DB的支持。然而,我在使用Logback的变量替换特性时遇到了问题,更具体地说,是从类路径上的属性文件中

我的推荐人:

所以我有一个多模块的Maven项目。在我的web模块(生成一个.war文件)中,我的Logback conf文件位于以下目录中:

src/main/resources
- logback.xml
- local.properties
- dev.properties
我的logback.xml文件如下所示:

<?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>
-Denv=local
但是,我在启动服务器时出现以下错误:

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在定位属性文件时遇到了问题


有人能告诉我我做错了什么吗?

正如我在评论中所说:

应该是:

<property resource="${env}.properties"/>

不是



Tomcat是否从Java传递系统变量?Tomcat有时会做一些有趣的事情。我的老板只是帮我解决了问题。我应该使用
,而不是
。也许该回家了:)你可能想自己解决这个问题。干得好
<property file="${env}.properties"/>