我对Akka很新,我无法application.conf加载文件.我已经定义了一个相对简单的conf文件,包括:
akka {
logLevel = "NONE"
stdout-logLevel = "NONE"
}
Run Code Online (Sandbox Code Playgroud)
根据我的理解,这应该自动拾取(将其放在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()
}
}
Run Code Online (Sandbox Code Playgroud)
我唯一能想到的是我已经定义了一个内核来在独立模式下运行它,我不确定是否还有一些额外的东西我应该在那里加载配置.
我已将我的项目放在GitHub上以更好地检查我正在做的事情:https://github.com/JohnMurray/hello-akka
非常感谢任何帮助,因为我现在是Akka新手.另外,我应该提一下,我已经在线阅读了配置文档,但在这种特殊情况下它并没有帮助我.
谢谢!
aba*_*yuk 11
尝试把你的文件转换成的src /主/资源/ - application.conf不是Scala的文件,因此它不会的src/main /斯卡拉/资源,这是软件包的文件夹属于根的.resources阶源.
好.我现在看到了什么问题.我不认为有一个loglevel设置NONE.
根据该文档,有四种设置:
# Options: ERROR, WARNING, INFO, DEBUG
loglevel = "DEBUG"
Run Code Online (Sandbox Code Playgroud)
尝试将其设置为警告.
此外,你在loglevel中有拼写错误 - 请注意它不是camelCase名称,而是全部更低的loglevel.
附注 - 将akka微内核插件添加到您的SBT构建中,并添加可以通过运行或重新启动操作启动的运行器.