2013-10-17 69 views
3

我在Heroku上部署了Play 2.2應用程序。目前,在我的應用程序中寫入我的記錄器的消息不會出現在Heroku日誌中,因爲Play應用程序(顯然)正在寫入除標準輸出之外的內容。Play 2.2生產模式登錄Heroku

在開發模式下,我的記錄器工作正常(他們寫入標準輸出)。我希望我的應用程序在生產模式下將其日誌記錄寫入標準輸出,因此它最終會出現在Heroku的應用程序日誌中。

爲了實現這一點,我必須在Play的配置中進行更改嗎?

+1

你讀過這個嗎? http://www.playframework.com/documentation/2.2.x/SettingsLogger – Carsten

+1

是的,謝謝。在您發佈此消息之前,只需稍等片刻即可。我將在下面提供詳細信息。 – kes

回答

1

我在應用程序中創建了一個名爲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>