从系统变量值中读取logback.xml

时间:2017-10-09 12:00:18

标签: java xml maven

我有一个项目,我使用maven jar插件构建它。对于日志我正在使用logback.and我希望我的logback.xml不在executableJar中。为了读取logback.xml我已经设置了一个新的环境变量我把logback.xml放在it中的值。我可以告诉我的项目使用这个变量来查找配置文件吗?

2 个答案:

答案 0 :(得分:0)

你可以这样做。在你的jar(src / resources /)中添加一个框架logback.xml,如下所示:

<configuration>
    <include resource="file:${LOG_CONFIG_DIR}/logback-app.xml"/>
</configuration>

然后在启动时,您可以在jar外部使用logback-app.xml,如下所示

<included>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{60} %mdc{applicationName} %mdc{environment}
                %mdc{gearid} - %msg%n
            </Pattern>
        </layout>
    </appender>

    <logger name="org.apache" level="ERROR"/>

    <root level="trace">
        <appender-ref ref="STDOUT"/>
    </root>

</included>

然后在开始时你可以像这样连接外部文件:

java ... -DLOG_CONFIG_DIR = / directory ....

答案 1 :(得分:0)

查看本手册:

https://logback.qos.ch/manual/configuration.html#variableSubstitution

您可以使用如下命令:

java -Dlogback.configurationFile=/path/to/config.xml chapters.configuration.MyApp1