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

Posted

技术标签:

【中文标题】$application.home 如何在 play 框架的 conf/logback.xml 中解析?【英文标题】:How $application.home resolved in conf/logback.xml in play framework?$application.home 如何在 play 框架的 conf/logback.xml 中解析? 【发布时间】:2016-06-13 10:51:20 【问题描述】:

我正在使用 Play Framework 2.4。这是默认 conf/logback.xml 文件 Play 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>

你可以在here看到完整版。我的问题是 $application.home 究竟是如何解决的?我阅读了this 的答案,但没有用。

确切的情况是,当我从 &lt;file&gt;&lt;/file&gt; 标记中删除 $application.home 时,logs 文件夹将在 dist(play-restful-docker-1.0-SNAPSHOT) 文件夹之外(与之并行)创建。 (生产中)

我可以添加 dist-name (play-restful-docker-1.0-SNAPSHOT) 替换 $application.home 并在 dist 内创建 logs 文件夹并且工作完美。但这不是一个好习惯,因为每个新版本都必须更改它。

【问题讨论】:

你能举个例子说明你想要实现的目标吗(例如:日志放在 x/y/z 中,我希望它们在 x/k/m 中)? 我很难得到您的确切问题? 我正在尝试添加一个日志文件(在 标记内),它会在应用程序启动和运行时保持所有日志。 【参考方案1】:

您可以创建自己的 conf/logback.xml 并覆盖默认的。附加的“:-。”如果未定义 application.home,则在 application.home 之后将使其默认为当前目录。 Play 2.5 的默认 logback.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>

【讨论】:

以上是关于$application.home 如何在 play 框架的 conf/logback.xml 中解析?的主要内容,如果未能解决你的问题,请参考以下文章

机器学习基石感知机模型+PLA

PLA-机器学习基石2

Pla

PLA(感知机)

感知机学习算法(PLA)

SRS中的“PLA时间”和“CPB时间”是啥意思