微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

scala – Akka没有加载application.conf

我是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新手.另外,我应该提一下,我已经在线阅读了配置文档,但在这种特殊情况下它并没有帮助我.

谢谢!

解决方法

尝试将文件放入src / main / resources / – application.conf不是scala文件,因此它不属于src / main / scala / resources,它是包root.resources scala源的文件夹.

好.我现在看到了什么问题.我不认为有一个loglevel设置NONE.

根据doc,有四种设置:

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

尝试将其设置为警告.

此外,你在loglevel中有拼写错误 – 请注意它不是camelCase名称,而是全部更低的loglevel.

附注 – 将akka微内核插件添加到您的SBT构建中,并添加可以通过运行或重新启动操作启动的运行器.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐