2016-11-16 51 views
0

我有以下logback.xml定义:播放框架2.5日志问题使用编译时DI

<configuration> 

    <conversionRule conversionWord="coloredLevel" converterClass="play.api.libs.logback.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 - %message%n%xException</pattern> 
    </encoder> 
    </appender> 

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
    <encoder> 
     <pattern>%coloredLevel %logger{15} - %message%n%xException{10}</pattern> 
    </encoder> 
    </appender> 

    <appender name="ASYNCSTDOUT" class="ch.qos.logback.classic.AsyncAppender"> 
    <appender-ref ref="STDOUT" /> 
    </appender> 

    <logger name="play" level="INFO" /> 
    <logger name="application" level="INFO" /> 

    <logger name="com.gargoylesoftware.htmlunit.javascript" level="OFF" /> 

    <root level="WARN"> 
    <appender-ref ref="ASYNCSTDOUT" /> 
    </root> 

</configuration> 

下面是我如何使用记录仪打印到控制台的样本:

class SupervisorActor(globalChannel: GlobalOutputChannel) 
    (implicit s: Scheduler) extends Actor { 

    private[this] val subscriptions = CompositeCancelable() 

    override def preStart = { 
    Logger.info(s"starting Supervisor Actor [$self]") 
    .... 
    .... 
} 

我期待在我的application.log或控制台上看到启动Supervisor Actor [$ self]'''语句的'''语句,但似乎没有打印出来。任何想法可能是错误的?

+1

你如何管理你的依赖?你使用guice还是编译时间DI? – vdebergue

+0

我使用编译时DI,顺便说一下,我发现了什么是错误的,我发布了我的答案! – sparkr

回答

1

由于我使用的编译时间DI,我不得不添加以下到我的应用程序加载逻辑:

LoggerConfigurator(newContext.environment.classLoader) 
    .foreach(_.configure(newContext.environment))