Scala playframework 2模块和输出日志

Scala playframework 2模块和输出日志,scala,module,playframework-2.0,Scala,Module,Playframework 2.0,我跟随教程 使Scala框架应用程序与包含“println”消息的依赖模块一起工作 所以, myApp依赖于myModule,在myModule的控制器中,我有: object MyLogger { def log(message: String) { Console.println("something" + message) } } 在myApp中,我有: object Application extends Controller { def index = Ac

我跟随教程

使Scala框架应用程序与包含“println”消息的依赖模块一起工作

所以, myApp依赖于myModule,在myModule的控制器中,我有:

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

[信息]播放-在端口9000上侦听HTTP

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

我已经查过了:

  • cd myApp
  • 播放依赖项(myApp它实际上依赖于myModule,因此应该可以工作)
  • --

    经过一些调查,我发现在我删除对myDev的依赖之前,MyApp index controller中的这条消息“这是一条信息”也没有显示出来。然后,当我删除该依赖项时,应用程序会再次启动对我的更改的响应:

    def index = Action {
    
        play.api.Logger.info("this is an info")
    
        Ok(views.html.index("Your new application is ready!"))
      }
    
    所以,也许我用错误的方式定义了我的模块。我应该改变myModule的结构吗?或者可以将其保留为默认的项目结构?我稍后再查。我想原因在于我在MyModule中留下的“routes”文件。

    为什么不使用

    它允许您登录到不同级别-具体取决于您的
    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
    我出现此问题的原因是myModule是一个应用程序,而不是一个模块。我必须:

  • 删除“路由”文件

  • 清理“application.conf”文件

  • 删除“视图”文件夹

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

  • 我想如果play有这样的东西会更好:play newModule。也许是吧


    (因此,我错过了关于“路由”的这一部分,这实际上是在上面的教程中描述的。我懒得阅读:(.Play framework 1.x在模块方面与之类似。)

    您看到“索引”了吗页面本身?是的。有一个默认值。绿色。实际上,如果我将“您的新应用程序已准备就绪”。更改为其他任何内容,它不会更新页面上的消息。我想这可能是原因。(即使在myApp的“play clean”之后)您使用
    play start
    启动应用程序?请改用
    play run
    或重新启动应用程序(
    run
    在开发时更好)我在所有尝试中都使用“play run”这是合理的。但对我不起作用。如果将这些行放在myApp index controller中,甚至不起作用。