1

我已经按照这个教程

使 Scala Plaframework 应用程序与其中包含“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,我希望 'Here's my log message' 出现在我的输出中,但没有任何,除了:

[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 中的“路由”文件。

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. 删除“视图”文件夹

    然后我可以将其称为模块,但不能称为应用程序。

我想如果 play 有这样的东西会更好:play newModule。也许它有?

(所以,我只是错过了关于“路线”的这一部分,实际上在上面的教程中进行了描述。懒得阅读.. :(。关于模块,Play framework 1.x 的工作方式与此类似。)

于 2012-11-05T21:39:18.733 回答