5

我正在使用http://logback.qos.ch/

例如,我正在使用参数运行我的 java 进程,-Dproperties.url=myappproperties-production.properties或者-Dproperties.url=myappproperties-development.properties取决于运行它的环境。

问题:如何让 logback 获取我的属性文件?

如果属性文件名是静态的,我会这样做(工作正常):

<configuration>
    <property resource="myappproperties-development.properties" />
    (...)
</configuration>

但我需要一些动态的东西(这不起作用):

<configuration>
    <property resource="${properties.url}" />
    (...)
</configuration>
4

3 回答 3

4

资源文件的值可以是属性本身。换句话说,

<configuration debug="true">
    <property resource="${properties.url}" />
    (...)
</configuration>

应该管用。BYW,将element的debug属性设置为在控制台上查看 logback 的内部消息。您使用的是哪个版本的 logback?<configuration>true

于 2012-06-19T19:28:36.970 回答
0

如果属性 url 值是用引号引起来的,你将如何处理这个问题?例如

-Dproperties.url="myappproperties-production.properties"

我刚试过这个,它没有用

我问的原因是因为 Amazon Elastic Beanstalk 中最新版本的 Amazon AMI 在属性值周围添加了逗号 - 即使用户没有指定这个

于 2015-07-10T14:38:27.000 回答
0

这是 Spring 推荐的方式:

<configuration>

    <springProfile name="local">
        <!-- configuration to be enabled when the "local" profile is active -->
        <property resource="application-local.properties" />
    </springProfile>

    <springProfile name="dev">
        <!-- configuration to be enabled when the "dev" profile is active -->
        <property resource="application-dev.properties" />
    </springProfile>

</configuration>

参考文档:https ://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html

于 2017-12-11T11:14:19.720 回答