我在Heroku上部署了Play 2.2应用程序。目前,在我的应用程序中写入我的记录器的消息不会出现在Heroku日志中,因为Play应用程序(显然)正在写入除标准输出之外的内容。Play 2.2生产模式登录Heroku
在开发模式下,我的记录器工作正常(他们写入标准输出)。我希望我的应用程序在生产模式下将其日志记录写入标准输出,因此它最终会出现在Heroku的应用程序日志中。
为了实现这一点,我必须在Play的配置中进行更改吗?
我在Heroku上部署了Play 2.2应用程序。目前,在我的应用程序中写入我的记录器的消息不会出现在Heroku日志中,因为Play应用程序(显然)正在写入除标准输出之外的内容。Play 2.2生产模式登录Heroku
在开发模式下,我的记录器工作正常(他们写入标准输出)。我希望我的应用程序在生产模式下将其日志记录写入标准输出,因此它最终会出现在Heroku的应用程序日志中。
为了实现这一点,我必须在Play的配置中进行更改吗?
我在应用程序中创建了一个名为conf/application-logger.xml
的文件。没有其他更改需要application.conf
,现在日志在Heroku上正常运行。
http://www.playframework.com/documentation/2.2.x/SettingsLogger有这些说明。不过,我的配置与该页面上的示例不同,因为我将appender移除到FILE
,并且只保留appender到STDOUT
appender。
<configuration>
<conversionRule conversionWord="coloredLevel" converterClass="play.api.Logger$ColoredLevel" />
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%coloredLevel %logger{15} - %message%n%xException{5}</pattern>
</encoder>
</appender>
<logger name="play" level="INFO" />
<logger name="application" level="INFO" />
<logger name="mycustomlogger" level="INFO" />
<!-- Off these ones as they are annoying, and anyway we manage configuration ourself -->
<logger name="com.avaje.ebean.config.PropertyMapLoader" level="OFF" />
<logger name="com.avaje.ebeaninternal.server.core.XmlConfigLoader" level="OFF" />
<logger name="com.avaje.ebeaninternal.server.lib.BackgroundThread" level="OFF" />
<logger name="com.gargoylesoftware.htmlunit.javascript" level="OFF" />
<root level="ERROR">
<appender-ref ref="STDOUT" />
</root>
</configuration>
我已经开始使用Papertrail Heroku插件https://addons.heroku.com/papertrail,并且非常满意它。
你读过这个吗? http://www.playframework.com/documentation/2.2.x/SettingsLogger – Carsten
是的,谢谢。在您发布此消息之前,只需稍等片刻即可。我将在下面提供详细信息。 – kes