播放框架记录器在打包后不选择格式 [英] Play framework logger not picking format after packaging
问题描述
我已经使用 conf
文件夹中的 logger.xml
文件格式化了播放生成的日志以获得所需的格式.在我的本地环境中,当我使用诸如 play ~run
或 play -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 stage
或 play 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屋!