Play Framework logback.xml不遵守提供的env变量

时间:2015-09-09 02:54:35

标签: logging configuration logback playframework-2.3

我有一个自定义conf/logback.xml,如下所示:

<configuration>

  <conversionRule conversionWord="coloredLevel" converterClass="play.api.Logger$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 %n%message%n%xException%n</pattern>
     </encoder>
   </appender>

  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%date - %coloredLevel %logger{15} - %message%n%xException{5}</pattern>
    </encoder>
  </appender>

  <appender name="my-app" class="ch.qos.logback.core.FileAppender">
     <file>${application.home}/logs/my-app.log</file>
     <encoder>
       <pattern>%date - [%logger] [%level] - %message%n</pattern>
     </encoder>
  </appender>

</configuration>

当我暂停我的应用activator clean stage并转到target/universal/stage/bin并执行./myApp -Dapplication.home=/home/me/myApp时,我希望创建日志并将其写入/home/me/myApp/logs,但我所看到的是:

  1. 目录在/home/me/myApp/logs中创建,其中包含空日志文件
  2. 目录也在/home/me/myApp/target/universal/stage/logs中创建,其中包含日志文件[不需要]
  3. 应用中的所有用户操作都会导致日志写入target/universal/stage/logs,而不是我定义为${application.home} [不期望]
  4. 当我跑./myApp -verbose -Dapplication.home=/home/me/myApp时,我看到有一个参数正在打印: -Duser.dir=/home/me/myApp/target/universal/stage让我相信这会影响最终编写日志的位置。

    为什么logback不写入/home/me/myApp/logs中创建的新文件而是创建/home/me/myApp/target/universal/stage/logs并将所有日志写入其中的任何想法?

    感谢。

0 个答案:

没有答案