播放框架记录器包装后不选择格式

时间:2014-07-01 08:37:38

标签: xml logging playframework log4j logback

我已使用logger.xml文件夹中的conf文件格式化播放生成的日志,以获得所需的格式。在我的本地环境中,当我使用正常的播放命令,如play ~runplay -Dlogger.resource=logger.xml时。但是,当我使用play dist打包并使用命令sudo ./start -Dlogger.resource=logger.xml启动该过程时,它将打印没有任何格式的默认日志。

logger.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>%d{HH:mm:ss.SSS} [%level] %class:%method  %msg%n </pattern>
     </encoder>
   </appender>

  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%level] %class:%method  %msg%n </pattern>
    </encoder>
  </appender>

  <root level="ERROR">
    <appender-ref ref="STDOUT" />
    <appender-ref ref="FILE" />
  </root>

  <logger name="application" level="debug" additivity="false">
    <appender-ref ref="STDOUT"/>
    <appender-ref ref="FILE"/>
  </logger>

</configuration>

1 个答案:

答案 0 :(得分:3)

您似乎使用的是Play 2.0.x - 2.1.x,因为您使用的是由startplay stage生成的play dist脚本。 根据{{​​3}}并假设您的logger.xml位于您的conf目录中,则您文件的建议正确配置为:

sudo ./start -Dlogger.resource=logger.xml

然而,事实证明,如果您将Logback配置文件命名为logger.xml,则Play似乎从类路径中选择默认的logger.xml配置文件,而不是您的。这可能是为什么文档中配置文件的名称被称为prod-logger.xml而不仅仅是logger.xml,但是没有明确解释。

因此,将您的logger.xml文件重命名为其他内容。例如test-logger.xml,然后以下内容将正确选择您的Logback配置:

sudo ./start -Dlogger.resource=test-logger.xml