2016-01-19 3 views
5

Я пытаюсь настроить базовую регистрацию для моей системы акк-акков, но до сих пор я получаю только стандартные журналы и ни один из моих добавленных журналов или выходной файл. Я следовал вместе с akka docs for logging и установил следующее:Akka SLF4J и logback в Scala

  • Я добавил эту зависимость в build.sbt файл

    "com.typesafe.akka" %% "akka-slf4j" % "2.3.14" 
    "ch.qos.logback" % "logback-classic" % "1.0.9" 
    
  • Я добавил это в файл application.conf

    akka { 
        loggers = ["akka.event.slf4j.Slf4jLogger"] 
        loglevel = "DEBUG" 
    } 
    
  • logback.xml находится в SRC/основные/ресурсов

    <configuration> 
        <appender name="FILE" class="ch.qos.logback.core.FileAppender"> 
         <File>./logs/akka.log</File> 
         <encoder> 
          <pattern>%d{HH:mm:ss.SSS} [%-5level] %msg%n</pattern> 
         </encoder> 
        </appender> 
        <root level="info"> 
         <appender-ref ref="FILE" /> 
        </root> 
    </configuration> 
    
  • Это то, что я скачкообразной должен делать вырубку

    import akka.event.Logging 
    
    val log = Logging(context.system, classOf[TickActor]) 
    log.info("Good Luck!") 
    

я не получаю и сообщений отказа от стандартного каротажа, и я не смог найти дополнительные решения, сильно отличающиеся от того, что у меня уже есть. Я пробовал предложения в this question. Казалось, это та же проблема, что и у меня, но предложения не сработали. Я пропустил шаг или настроил что-то неправильно?

ответ

5

Все выглядит правильно, за исключением отсутствующих настроек akka.logging-filter. Вот как это должно выглядеть следующим образом:

akka { 
    loggers = ["akka.event.slf4j.Slf4jLogger"] 
    loglevel = "DEBUG" 
    logging-filter = "akka.event.slf4j.Slf4jLoggingFilter" 
} 

Вот проект с такой же установкой, которая каротажная работой: application.conf и logback.xml.

Объяснение от docs:

Вам необходимо включить Slf4jLogger в элементе регистраторы в конфигурации. Здесь вы также можете определить уровень журнала события . Более тонкозернистые уровни журналов могут быть определены в конфигурации бэкэнд SLF4J (например, logback.xml). Вы также должны определить akka.event.slf4j.Slf4jLoggingFilter в параметре конфигурации регистрации . Он будет фильтровать события журнала, используя конфигурацию бэкэнд (например, logback.xml), прежде чем они будут опубликованы до шины событий.

и

Внимание! Если вы установили уровень loglevel на более высокий уровень, чем «DEBUG», любые события DEBUG будут отфильтрованы уже у источника и никогда не будут достичь бэкэнда регистрации, независимо от того, как сконфигурирован сервер .

, о котором вы позаботились уже.

Смежные вопросы