播放框架记录器在打包后不选择格式 [英] Play framework logger not picking format after packaging

查看:26
本文介绍了播放框架记录器在打包后不选择格式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

logger.xml

<预><代码><配置><conversionRule conversionWord="coloredLevel" converterClass="play.api.Logger$ColoredLevel"/><appender name="FILE" class="ch.qos.logback.core.FileAppender"><file>${application.home}/logs/application.log</file><编码器><pattern>%d{HH:mm:ss.SSS} [%level] %class:%method %msg%n </pattern></编码器></appender><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><编码器><pattern>%d{HH:mm:ss.SSS} [%level] %class:%method %msg%n </pattern></编码器></appender><root level="错误"><appender-ref ref="STDOUT"/><appender-ref ref="文件"/></root><logger name="application" level="debug" additivity="false"><appender-ref ref="STDOUT"/><appender-ref ref="文件"/></配置>

解决方案

您似乎在使用 Play 2.0.x - 2.1.x,因为您使用的是由play stageplay dist.根据文档中的这一部分,并假设您的 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

I have formatted the logs generated by play using logger.xml file in conf folder to get the desired format. In my local environment when i am using the normal play commands like play ~run or play -Dlogger.resource=logger.xml start. But when i do packaging with play dist and start the process with command sudo ./start -Dlogger.resource=logger.xml it is printing default logs without any format.

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>

解决方案

You seem to be using Play 2.0.x - 2.1.x based on the fact that you are using the start script generated by play stage or play dist. According to this section in the docs and assuming your logger.xml is in your conf directory, then the suggested correct config for your file would be:

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

However, it turns out that if you name your Logback config file logger.xml then Play seems to pick the default logger.xml config file from the classpath and not yours. Which is probably why the name of the config file in the docs is called prod-logger.xml and not just logger.xml, however that is not explicitly explained.

So rename your logger.xml file to something else. For example test-logger.xml and then the following will correctly pick your Logback config:

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

这篇关于播放框架记录器在打包后不选择格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆