1

私はこのチュートリアルに従いました

ScalaPlaframeworkアプリケーションを「println」メッセージを含む依存モジュールで動作させるため。

したがって、myAppはmyModuleに依存し、myMyModuleのコントローラーには次のものがあります。

object MyLogger {

  def log(message: String) {
    Console.println("something" + message)
  }

}

myAppには次のものがあります。

object Application extends Controller {

  def index = Action {
    MyLogger.log("Here's my log message");

    Ok(views.html.index("Your new application is ready."))
  }

}

localhost:9000にアクセスすると、「ログメッセージは次のとおりです」が出力に表示されると期待していますが、次の場合を除いて何もありません。

[info]play-ポート9000でHTTPをリッスンしています...

(サーバーが起動しました。Ctrl+ Dを使用して停止し、コンソールに戻ります...)

確認しました:

  1. cd myApp;
  2. 依存関係を再生します(myAppは実際にはmyModuleに依存しているため、機能するはずです)

-

調査の結果、myDevへの依存関係を削除するまで、MyAppインデックスコントローラーに「これは情報です」というメッセージも表示されなかったことがわかりました。そして、その依存関係を削除すると、アプリケーションは私の変更に再び反応します。

def index = Action {

    play.api.Logger.info("this is an info")

    Ok(views.html.index("Your new application is ready!"))
  }

したがって、モジュールを間違った方法で定義した可能性があります。myModuleの構造を変更する必要がありますか?または、デフォルトのプロジェクト構造のように残すことは可能ですか?後で確認します。その理由は、MyModuleに残した「routes」ファイルにあると思います。

4

2 に答える 2

2

play.api.Loggerを使用しないのはなぜですか?

それはあなたが異なるレベルにログインすることを可能にします-あなたapplication.confとアプリモードの設定に応じて:

def index = Action {
    play.api.Logger.info("this is an info")
    play.api.Logger.debug("and debug is also possible")
    play.api.Logger.error("...and error")
    play.api.Logger.warn("or even warn")
    Ok(views.html.index("Your new application is ready."))
}

devモードはデフォルトですべてのレベルをlife表示し、表示を回避しますdebug

于 2012-11-05T20:47:25.243 に答える
0

この問題が発生した理由は、myModule がアプリケーションであり、モジュールではないためです。そうしなければならなかった:

  1. 「ルート」ファイルを削除

  2. 「application.conf」ファイルをクリーンアップします

  3. 「views」フォルダを削除

    次に、これをモジュールと呼ぶことができますが、アプリケーションではありません。

play が次のようなものであれば、より良いと思います: newModule を再生します。多分それはありますか?

(そのため、上記のチュートリアルで実際に説明されていた「ルート」に関するこの部分を見逃していました。読むのが面倒です.. :(. Play フレームワーク 1.x は、モジュールに関して、それと同様に機能します。)

于 2012-11-05T21:39:18.733 に答える