6

我对 Akka 很陌生,我无法application.conf加载文件。我定义了一个相对简单的 conf 文件,包括:

akka {
  logLevel = "NONE"
  stdout-logLevel = "NONE"
}

据我了解,这应该是自动拾取的(已将其放入src/main/resources目录中)。但是,当我加载默认记录器并输出“INFO”(打招呼)消息时,我仍然在控制台中看到它们(参见下面的代码)。

import akka.actor.{ActorRef, Actor, Props}
import akka.event.Logging

object HelloWorldActor {
  case object Tick
}


class HelloWorldActor extends Actor {
  val logger = Logging(context.system, this)
  var greeter : Option[ActorRef] = None

  override def preStart() = {
    greeter = Some(context.actorOf(Props[Greeter], "greeter"))
  }

  def doGreet(): Unit = {
    logger.info("doing greet")
    greeter match {
      case Some(g) => g ! Greeter.Greet
    }
  }
  def receive: Actor.Receive = {
    case HelloWorldActor.Tick => this.doGreet()
  }
}

我唯一能想到的是,我已经定义了一个内核来在独立模式下运行它,我不确定是否应该在那里做一些额外的事情来加载配置。

我已将我的项目放在 GitHub 上,以便更好地检查我在做什么:https ://github.com/JohnMurray/hello-akka

非常感谢任何帮助,因为我目前是 Akka 新手。另外,我应该提到我已经在线阅读了配置文档,但在这种特殊情况下它对我没有帮助。

谢谢!

4

1 回答 1

13

尝试将您的文件放入 src/main/resources/ - application.conf 不是 scala 文件,因此它不属于 src/main/scala/resources 这是包根目录.resources scala 源的文件夹。

好的。我知道现在有什么问题。我认为没有日志级别设置 NONE。

根据文档,有四个设置:

# Options: ERROR, WARNING, INFO, DEBUG
loglevel = "DEBUG"

尝试将其设置为警告。

此外,您在日志级别中有拼写错误 - 请注意它不是驼峰式名称,而是所有较低的日志级别。

旁注 - 将 akka 微内核插件添加到您的 SBT 构建并添加可以通过运行或重新启动操作启动的运行器。

于 2013-08-25T17:00:12.267 回答