${application.home} 如何在 conf/logback.xml 在 play 框架中解析



我正在使用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>

相关内容

  • 没有找到相关文章

最新更新