我正在使用Play Framework 2.4。这是默认 conf/logback.xml 文件播放 2.4
的一部分<!--
~ Copyright (C) 2009-2016 Lightbend Inc. <https://www.lightbend.com>
-->
<!-- The default logback configuration that Play uses if no other configuration is provided -->
<configuration>
<conversionRule conversionWord="coloredLevel" converterClass="play.api.libs.logback.ColoredLevel" />
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${application.home}/logs/application.log</file>
<encoder>
<pattern>%date [%level] from %logger in %thread - %message%n%xException</pattern>
</encoder>
</appender>
</configuration>
您可以从这里查看完整版本。我的问题是,究竟如何解决${application.home}?我读了这个答案,但没有用。
确切的情况是,当我从<file></file>
标签中删除${application.home}
时,logs
文件夹将在dist(play-restful-docker-1.0-SNAPSHOT)文件夹之外(并行)创建。(生产中)
我可以添加dist-name(play-restful-docker-1.0-SNAPSHOT)替换${application.home},它会在dist内创建logs
文件夹并且工作得很好。但这不是一个好的做法,因为它必须根据每个新版本进行更改。
创建自己的 conf/logback.xml并覆盖默认的 conf/logback。如果未定义 application.home,则 application.home 后面的附加":-."将导致它默认为当前目录。 Play 2.5 的默认登录.xml会自动执行此操作。
<configuration>
<conversionRule conversionWord="coloredLevel" converterClass="play.api.libs.logback.ColoredLevel" />
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${application.home:-.}/logs/application.log</file>
<encoder>
<pattern>%date [%level] from %logger in %thread - %message%n%xException</pattern>
</encoder>
</appender>
</configuration>