Сообщите Akka о конфигурации журнала Play

Как сделать так, чтобы Akka знала о конфигурации журнала Play (application-logger.xml)?
В моем случае она полностью игнорируется:

Журнал выводится ТОЛЬКО на стандартный вывод. Я ожидаю, что он будет зарегистрирован в File-Appender, определенном в application-logger.xml.

Если я переименую application-logger.xml в logback.xml, ничего не изменится.

Актер-класс:

class Dispatcher extends Actor with ActorLogging {
    // prints to stdout ONLY:
    log.error("[akka-logger] dispatch started...")
}

conf/application.conf:

play {
  akka {

    #log-config-on-start = on
    loggers = ["akka.event.slf4j.Slf4jLogger"]
    event-handlers = ["akka.event.slf4j.Slf4jEventHandler"]    
    loglevel = DEBUG

    # and so on...
}

conf/application-logger.xml

<configuration>

<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>
<!-- Using akka.event.slf4j.EventHandler does NOT make a difference here: -->
<logger name="akka.event.slf4j.Slf4jLogger" level="ERROR" additivity="false">
    <appender-ref ref="FILE"/>
</logger>

<logger name="play" level="ERROR" additivity="false">
    <appender-ref ref="FILE"/>
</logger>

<logger name="application" level="ERROR" additivity="false">
    <appender-ref ref="FILE"/>
</logger>

<root level="ERROR">
    <appender-ref ref="STDOUT"/>
    <appender-ref ref="FILE"/>
</root>

</configuration>

person recalcitrant    schedule 16.04.2013    source источник
comment
Следующий пост проясняет ситуацию: [введите описание ссылки здесь][1] [1]: stackoverflow.com/questions/8977983/   -  person recalcitrant    schedule 18.04.2013
comment
В этом посте сказано все: [имена регистраторов с обработчиком событий][1] [1]: stackoverflow.com/questions/8977983/   -  person recalcitrant    schedule 18.04.2013


Ответы (2)


У меня такая же проблема. Я использую play 2.2.1 (также тестировалась с 2.2.2) и обновленную версию akka 2.2.3 (но она также работает с версией, которая идет с play). Я также должен отметить, что я использую Java, а не Scala. Вот что я сделал.

приложение.conf:

   akka {
      loggers = ["akka.event.slf4j.Slf4jLogger"]
      loglevel = "DEBUG"
    }

А у меня logger.xml выглядит так:

<configuration>

  <conversionRule conversionWord="coloredLevel" converterClass="play.api.Logger$ColoredLevel" />

  <appender name="FILE" class="ch.qos.logback.core.FileAppender">
     <file>${application.home}/logs/applicationmax.log</file>
     <encoder>
       <pattern>%date ---- [%level] --  %X{akkaSource} -- 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="DEBUG" />
  <logger name="application" level="DEBUG" />
    <!-- use the package names of classes for specific loggers  -->
  <logger name="actor" level="DEBUG" />

  <root level="ERROR">
    <appender-ref ref="STDOUT" />
    <appender-ref ref="FILE" />
  </root>

</configuration>

Важно отметить, что я использую имя корневого пакета, где актеры находятся в качестве моего регистратора. Вы можете быть настолько конкретными, насколько вам нравится, например, com.actors или com.actors.someactors и т. д.

Вы можете увидеть больше в этой ветке группы Google в группе play-framework:

Уведомить Akka о конфигурации журналирования Play

person maxTrialfire    schedule 29.04.2014

Имя файла по умолчанию, используемое воспроизведением для журнала, — logger.xml. См. справку. Вы также можете изменить корневой уровень с ошибки на отладку, чтобы убедиться, что вы вообще получаете какие-либо сообщения журнала на корневом уровне.

person Stefan Podkowinski    schedule 17.04.2013
comment
Извините, я указал не ту версию Play, я использую Play-2.1, где имя файла изменилось на application-logger.xml. Так что до сих пор нет решения здесь. - person recalcitrant; 17.04.2013