Play framework logging設置

play的logger是基於Log4j,Play 2.0 uses logback as its logging engine.html

1、配置java

1. 在conf/application.conf中設置logger的級別spring

// Logger
// ~~~~~~~~~~~~~~~~~~~~~~~~~
// You can also configure logback (http://logback.qos.ch/), by providing a logger.xml file in the conf directory 
# Root logger: logger=ERROR # Logger used by the framework: logger.play=INFO # Logger provided to your application: logger.application=DEBUG

root logger配置影響全局,若是須要追蹤某個庫,如Spring,加入apache

logger.org.springframework=TRACE

2. 若是須要全面配置Log4j,建立conf/log4j.propertiesapi

Play默認的配置是app

log4j.rootLogger=ERROR, Console
log4j.logger.play=INFO
# Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE} %-5p ~ %m %n

參考值是:ide

log4j.rootLogger=WARN, Rolling
log4j.logger.play=INFO      
log4j.appender.Rolling=org.apache.log4j.RollingFileAppender
log4j.appender.Rolling.File=${application.path}/logs/application.log
log4j.appender.Rolling.MaxFileSize=1MB
log4j.appender.Rolling.MaxBackupIndex=100
log4j.appender.Rolling.layout=org.apache.log4j.PatternLayout
log4j.appender.Rolling.layout.ConversionPattern=%d{ABSOLUTE} %-5p ~ %m %n

log4j.logger.play的等級必須小於或的等於 "application.log"的等級,如"application.log"的等級是INFO,那麼log4j的等級必須是INFO或更低如TRACE, DEBUG。url

三、 配置logback——輸出有兩個spa

  • the standard out stream
  • logs/application.log

若是要自定義logback,修改conf/logger.xml,默認的logger.xml文件內容是code

<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>%date - [%level] - from %logger in %thread %n%message%n%xException%n</pattern>
     </encoder>
   </appender>
  <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" />
  <root level="ERROR">
    <appender-ref ref="STDOUT" />
    <appender-ref ref="FILE" />
  </root>  
</configuration>

如手動改變logback的配置文件

-Dlogger.resource

$ start -Dlogger.resource=conf/prod-logger.xml
to be loaded from the classpath

-Dlogger.file

$ start -Dlogger.file=/opt/prod/logger.xml
to be loaded from the file system

-Dlogger.url

$ start -Dlogger.url=http://conf.mycompany.com/logger.xml
to be loaded from an URL

2、使用logger

1. java類

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public
class Orders extends Controller { private static Logger logger = LoggerFactory.getLogger(Orders.class); ......
logger.info("Found " + entRef.length + " reference(s) for " + key); }

2. 模板文件中

@{play.Logger.info("tasks=" + tasks)}

 

 

 

參考:

  • http://www.playframework.com/documentation/2.0/SettingsLogger
  • http://www.playframework.com/documentation/1.0/logs
  • http://blog.amyboyd.co.uk/2011/05/how-to-configure-logging-in-play.html
相關文章
相關標籤/搜索