構成ファイルにデフォルトlogback.xml
の変数があり、タイプセーフな構成ファイルからこれらの変数をオプションで設定できるようにしたいと考えていapplication.conf
ます。
one-jar を使用してアプリケーションをデプロイしていますapplication.conf
が、デプロイ可能な jar にパッケージ化されたファイルにはデフォルトが含まれています。-Dconfig.file=foo.conf
サーバー固有の構成ファイルへのパスを提供するために実行を渡します。
現在-Dlog.level
、 およびその他の変数を渡して でデフォルトをオーバーライドすることもできます。コマンド ラインでlogback.xml
も渡す必要があります。-Dfile.encoding=UTF-8
コマンドラインではなくタイプセーフ構成でこれらのプロパティを指定できる方法を探しています。それを行う方法があるはずのように感じますが、魔法の言葉が見つかりません.
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>
application.conf (同梱):
akka {
log-config-on-start = false
event-handlers = ["akka.event.slf4j.Slf4jEventHandler"]
}
サーバー固有の app.conf の例:
include "/application.conf"
akka.log-config-on-start = true
log.level = WARN // this is what I'd LIKE to be able to do
現在アプリを実行している方法:
java -Dfile.encoding=UTF-8 -Dconfig.file=myApp.conf -Dlog.level=WARN -jar myApp_2.10-0.1-one-jar.jar