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