问题描述
我使用conf文件夹中的logger.xml文件生成的日志格式化了以获取所需格式.在我的本地环境中,当我使用play ~run或play -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>
推荐答案
您似乎正在使用play 2.0.x -2.1.x,因为您使用的是play stage或play dist生成的start脚本. 根据文档中的本节,并且假设您的logger.xml在您的logger.xml中C1>目录,然后建议您文件的正确配置为:
sudo ./start -Dlogger.resource=logger.xml
但是,事实证明,如果您命名了logback配置文件logger.xml,则播放似乎可以从classPath选择默认logger.xml配置文件,而不是您的.这可能就是为什么文档中的配置文件的名称称为prod-logger.xml,而不仅仅是logger.xml,但是没有明确解释.
因此,将您的logger.xml文件重命名为其他东西.例如test-logger.xml,然后以下内容将正确选择您的记录config:
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