我在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