在我的conf/application.conf
我將我的應用程序的日誌記錄級別設置爲DEBUG
。將日誌記錄級別設置爲在Playframework 2.0生產中進行調試?
logger.application=DEBUG
這工作正常,當我sbt run
我的申請。但是,當我使用sbt start
以生產模式運行它時,日誌級別會被覆蓋到INFO
。
有沒有一種方法可以強制播放使用DEBUG
作爲生產中運行時的日誌級別?
在我的conf/application.conf
我將我的應用程序的日誌記錄級別設置爲DEBUG
。將日誌記錄級別設置爲在Playframework 2.0生產中進行調試?
logger.application=DEBUG
這工作正常,當我sbt run
我的申請。但是,當我使用sbt start
以生產模式運行它時,日誌級別會被覆蓋到INFO
。
有沒有一種方法可以強制播放使用DEBUG
作爲生產中運行時的日誌級別?
您有two different loggers:play
記錄器和application
記錄器。 這裏是發展模式logger.xml的例子:
<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="DEBUG" />
<root level="ERROR">
<appender-ref ref="STDOUT" />
</root>
</configuration>
這裏播放記錄器設置日誌級別>信息和應用程序日誌中記錄(做Logger.debug/warn/error
當你使用一個)設定日誌級別> DEBUG。根級別是所有記錄器的默認級別,但是由於每個記錄器都定義了自己的級別,因此不需要。
您可以使用以下命令創建prod-logger.xml文件並以prod模式啓動應用程序:start -Dlogger.resource=conf/prod-logger.xml
。
以下是我用於具有兩個appender的生產服務器的配置,用於將level> DEBUG存儲在文件中,並在另一個文件中存儲level> WARN。還有一個TimeBasedRollingPolicy讓文件每天滾動。
<configuration>
<appender name="FILE_DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${application.home}/logs/debug_log.log</file>
<encoder>
<pattern>%date - [%level] - from %logger in %thread %n%message%n%xException%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${application.home}/logs/debug_log.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
</appender>
<appender name="FILE_WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${application.home}/logs/warn_log.log</file>
<encoder>
<pattern>%date - [%level] - from %logger in %thread %n%message%n%xException%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>WARN</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${application.home}/logs/warn_log.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>60</maxHistory>
</rollingPolicy>
</appender>
<logger name="play" level="INFO"/>
<logger name="application" level="INFO" />
<root level="WARN">
<appender-ref ref="FILE_DEBUG"/>
<appender-ref ref="FILE_WARN"/>
</root>
</configuration>
有關記錄的配置更詳細的看一下Logback
這工作,但我還是不明白,爲什麼在生產application.conf「logger.application = DEBUG」被忽略。 –
準確地說,您並未將調試消息存儲在FILE_DEBUG appender中,因爲根和應用程序都設置爲級別INFO和WARN,不允許調試日誌級別。爲了實現你的建議,我必須在'root level =「DEBUG''和 中改變'root level ='WARN''在。無論如何,謝謝你非常有幫助的例子! –