【问题标题】:Why isn't my akka logging working inside of play为什么我的 akka 日志不能在游戏中工作
【发布时间】:2017-01-16 03:06:39
【问题描述】:

我的日志在我的播放代码中运行良好,但我拥有的 akka 代码没有记录到文件/标准输出。

class EmailActor extends Actor with ActorLogging {
  import EmailActor._

  log.info("email actor hatched..")
...
}

当我创建这个演员时,我在日志文件或标准输出中都看不到日志条目。

我有来自此激活器模板的默认 application.conf:https://github.com/playframework/play-scala/blob/master/conf/logback.xml

我需要用一些 akka 标签修改我的 logback 文件吗?

更新

我现在在我的 application.conf 中完成了这项工作:

akka {
  loggers = ["akka.event.slf4j.Slf4jLogger"]
  #loggers = ["akka.event.Logging$DefaultLogger"]

  loglevel = "DEBUG"
  logging-filter = "akka.event.slf4j.Slf4jLoggingFilter"

  actor {
    debug {
      lifecycle = on
    }
  }
}

在我的依赖项中,我添加了这个(并且都添加到我的 play 应用程序的 dep 中):

val akkaSlf4j = "com.typesafe.akka" %% "akka-slf4j" % Version.akkaSlf4j
val logback = "ch.qos.logback" % "logback-classic" % Version.logback

我的 logback.xml 看起来像:

<!-- https://www.playframework.com/documentation/latest/SettingsLogger -->
<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="ASYNCFILE" class="ch.qos.logback.classic.AsyncAppender">
    <appender-ref ref="FILE" />
  </appender>

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

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

  <!-- Off these ones as they are annoying, and anyway we manage configuration ourselves -->
  <logger name="com.avaje.ebean.config.PropertyMapLoader" level="OFF" />
  <logger name="com.avaje.ebeaninternal.server.core.XmlConfigLoader" level="OFF" />
  <logger name="com.avaje.ebeaninternal.server.lib.BackgroundThread" level="OFF" />
  <logger name="com.gargoylesoftware.htmlunit.javascript" level="OFF" />

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

</configuration>

我在 STDOUT 或我使用 ActorLogging 日志方法创建的日志文件中没有看到任何与 akka 相关的日志。

【问题讨论】:

    标签: scala playframework akka


    【解决方案1】:

    注意你的 logback.xml 是如何有这一行的,

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

    允许loger_name 等于“play”的记录器在 INFO 级别记录。

    同样,您需要将以下内容添加到您的 logback.xml,

    <logger name="akka.event.slf4j.Slf4jLogger" level="DEBUG" />
    

    【讨论】:

      【解决方案2】:

      请将以下配置放入application.conf中

      akka {
        loglevel = "DEBUG"
      
        actor {
          debug {
            lifecycle = on
          }
        }
      }
      

      您应该能够在 STDOUT 上看到 akka 日志。 这是 link 到 akka 日志记录页面。

      ------ SLF4J 更新 -----------

      要使用 SLF4J 日志记录,请参考此answer

      添加这两个依赖项

      "com.typesafe.akka" %% "akka-slf4j" % "2.2.3"
      "ch.qos.logback" % "logback-classic" % "1.0.9"
      

      在配置中添加这个

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

      通过以上两个更改,日志应该开始出现在 logback.xml 中指定的文件

      【讨论】:

      • 我这样做了,我可以看到 akka 生命周期日志等。但是当我在我的演员上使用 ActorLogging 并使用 log.debug("hello") 我在 STDOUT 中看不到它或我的日志文件。
      • 据我所知,您拥有的顶部的 STDOUT 仅输出 akka 日志记录,但当我将自己的日志语句正确放置时却没有?为了让我自己的日志语句出现在 STDOUT 中,我需要 SLF4J?
      • 为了让日志语句出现在 STDOUT 中,您不需要 SLF4J
      • 我用我所做的所有配置更新了我的问题,仍然没有看到它!
      【解决方案3】:

      可能只是默认日志级别设置为WARN

      尝试将&lt;root level="WARN"&gt; 更改为&lt;root level="DEBUG"&gt;

      或添加与 EmailActor 匹配的 &lt;logger level="DEBUG" name="..."&gt;

      【讨论】:

        猜你喜欢
        • 2019-12-26
        • 2021-06-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多