playframework 2模块和日志输出

时间:2012-11-05 20:35:08

标签: scala module playframework-2.0

我跟着this教程

使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,我希望'这是我的日志消息'在我的输出中,但没有任何,除了:

  

[info] play - 在端口9000上侦听HTTP ...

     

(服务器启动,使用Ctrl + D停止并返回控制台...)

我已经查过:

  1. cd myApp;
  2. 播放依赖项(myApp它真的取决于myModule,所以它应该可以工作)
  3. -

    经过一些调查,我发现在删除对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'文件。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

我遇到此问题的原因是因为myModule是一个应用程序,而不是一个模块。我必须:

  1. 删除'路线'文件
  2. 清理'application.conf'文件
  3. 删除'views'文件夹

    然后我可以称之为模块,但不是应用程序。

  4. 我想它会更好如果游戏有这样的东西:玩newModule。也许它有?

    (所以,我刚刚错过了关于'路线'的这部分,实际上是在上面的教程中描述的。太懒了读.. :(。Play framework 1.x的工作方式类似于模块。)< / p>