scala - Akka Actor 日志记录未写入文件

标签 scala logging akka slf4j actor

我正在尝试登录到文件而不是标准输出。

我的 application.conf(在 src/main/resources/中):

akka {
  event-handlers = ["akka.event.slf4j.Slf4jEventHandler"]
  loglevel = "DEBUG"
}

logback.xml(在 src/main/resources/中):
<configuration>

    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>log/app.log</file>
        <append>true</append>
        <encoder>
            <pattern>%date{yyyy-MM-dd} %X{akkaTimestamp} %-5level[%thread] %logger{1} - %msg%n</pattern>
        </encoder>
    </appender>

    <root level="DEBUG">
        <appender-ref ref="FILE"/>
    </root>
</configuration>

创建 Actor 系统:
val conf: Config = ConfigFactory.load()
val system = ActorSystem("Process", conf)

最后,实际日志记录:
class Processor() extends Actor with ActorLogging {
   def receive = {
      case Start =>
         log.info("Started")
   }
}

但是,在运行应用程序时,我在标准输出中获得了日志:
[info] Running com.imgzine.analytics.apps.ProcessEvents
[DEBUG] [06/02/2014 09:28:53.356] [run-main] [EventStream(akka://Process)] logger log1-Logging$DefaultLogger started
[DEBUG] [06/02/2014 09:28:53.358] [run-main] [EventStream(akka://Process)] Default Loggers started
[INFO] [06/02/2014 09:28:53.389] [Process-akka.actor.default-dispatcher-4] [akka://Process/user/processor] Started
[DEBUG] [06/02/2014 09:28:54.887] [Process-akka.actor.default-dispatcher-4] [EventStream] shutting down: StandardOutLogger started

在 log/app.log 中,我发现:
2014-06-02  DEBUG[ProcessEvents-akka.actor.default-dispatcher-2] c.m.c.c.c.s.RegisterConversionHelpers$ - Registering Scala Conversions.
2014-06-02  DEBUG[ProcessEvents-akka.actor.default-dispatcher-2] c.m.c.c.c.s.RegisterConversionHelpers$ - Deserializers for Scala Conversions registering
2014-06-02  DEBUG[ProcessEvents-akka.actor.default-dispatcher-2] c.m.c.c.c.s.RegisterConversionHelpers$ - Serializers for Scala Conversions registering
2014-06-02  DEBUG[ProcessEvents-akka.actor.default-dispatcher-2] c.m.c.c.c.s.RegisterConversionHelpers$ - Setting up OptionSerializer
2014-06-02  DEBUG[ProcessEvents-akka.actor.default-dispatcher-2] c.m.c.c.c.s.RegisterConversionHelpers$ - Setting up ScalaProductSerializer
2014-06-02  DEBUG[ProcessEvents-akka.actor.default-dispatcher-2] c.m.c.c.c.s.RegisterConversionHelpers$ - Setting up ScalaCollectionSerializer
2014-06-02  DEBUG[ProcessEvents-akka.actor.default-dispatcher-2] c.m.c.c.c.s.RegisterConversionHelpers$ - Setting up ScalaRegexSerializers
2014-06-02  DEBUG[ProcessEvents-akka.actor.default-dispatcher-2] c.m.c.c.c.s.RegisterConversionHelpers$ - Hooking up scala.util.matching.Regex serializer
2014-06-02  DEBUG[ProcessEvents-akka.actor.default-dispatcher-2] c.m.c.c.c.s.RegisterConversionHelpers$ - Reached base registration method on MongoConversionHelper.

有任何想法吗?

最佳答案

如果您按照我的评论所述使用 Akka 2.3.3,那么您的日志配置已过时(使用旧的日志配置设置)。尝试将您的日志配置替换为:

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

如果这不起作用,请告诉我,我会就另一种解决方案提供建议。

关于scala - Akka Actor 日志记录未写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23989474/

相关文章:

java - 在 Play Framework 中使用 WebSockets 的缓冲区溢出

akka - Behaviors.same 与此

scala - 如何在scala play框架wsclient中发送-k或忽略证书验证?

java - 使用 SimpleFormatter 限制字符串长度

scala - 为什么此Scala隐式参数示例不起作用?

java - 配置 Wiremock 以将 log4j 与自定义转换器结合使用

database - 从汇总的Weblogs数据中检索信息,该怎么做?

scala - Lagom 中的多部分表单数据

升级测试 : object scalatest is not a member of package org

scala - Shapeless,如何证明Nat在Sized边界内?