6

私は Akka を初めて使用し、application.confファイルをロードするのに問題があります。以下で構成される比較的単純な conf ファイルを定義しました。

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

私が理解していることから、これは自動的に取得されるはずです(src/main/resourcesディレクトリに配置されています)。ただし、デフォルトのロガーをロードして "INFO" ( greeting を実行) メッセージを出力すると、まだコンソールに表示されます (次のコードを参照)。

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 ファイルではないため、パッケージルート.resources scala ソースのフォルダーである src/main/scala/resources には属しません。

わかった。今何が問題なのかがわかります。ログレベルの設定が NONE ではないと思います。

ドキュメントによると、次の4 つの設定があります。

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

WARNINGに設定してみてください。

また、ログレベルにタイプミスがあります - キャメルケース名ではなく、すべて低いログレベルであることに注意してください。

補足 - akka マイクロカーネル プラグインを SBT ビルドに追加し、実行または再起動アクションで起動できるランナーを追加します。

于 2013-08-25T17:00:12.267 に答える