我的logback.xml配置文件中有默认值的变量,我希望能够从我的typesafe配置application.conf文件中选择性地设置这些变量.
我正在使用one-jar部署应用程序,并且application.conf可部署jar中打包的文件包含默认值.我传递-Dconfig.file=foo.conf执行以提供特定于服务器的配置文件的路径.
现在我也可以传递-Dlog.level和其他变量来覆盖我的默认值logback.xml,我也必须传递-Dfile.encoding=UTF-8命令行.我正在寻找一种方法,能够在typesafe配置中而不是在命令行上指定这些属性.感觉应该有办法做到这一点,但我找不到神奇的话语.
logback.xml:
<configuration>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path:-logs/}/${log.file:-myLog.log}</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- daily rollover -->
<fileNamePattern>logFile.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- keep 15 days' worth of history -->
<maxHistory>${log.history.days:-15}</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>
<root level="${log.level:-INFO}">
<appender-ref ref="FILE" />
</root>
</configuration>
Run Code Online (Sandbox Code Playgroud)
application.conf(bundled):
akka {
log-config-on-start = false
event-handlers = ["akka.event.slf4j.Slf4jEventHandler"]
}
Run Code Online (Sandbox Code Playgroud)
示例服务器特定的app.conf:
include "/application.conf"
akka.log-config-on-start = true
log.level = WARN // this is what I'd …Run Code Online (Sandbox Code Playgroud)