2012-11-05 32 views
1

心中已经随后this教程playframework 2模块和日志输出

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

[信息]玩 - 侦听HTTP端口9000 ...

(服务器启动时,使用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。

+0

你看到“索引”页面本身吗? – Timur

+0

是的,有默认的一个。绿色的一个。 – ses

+0

实际上,如果我改变'你的新应用程序已准备就绪。'其他任何东西都不会更新页面上的消息我想这应该是原因吧(即使在'玩完了'之后myApp) – ses

回答

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

+0

这是合理的。但不适合我。如果将这些行放到myApp索引控制器中,它甚至不起作用。 – ses

0

原因为什么我有这个问题,是因为myModule是一个应用程序,但不是一个模块。我只好:

  1. 删除 '路线' 文件
  2. 清理“应用。conf'文件
  3. 删除'views'文件夹

    然后我可以调用这个模块,但不是应用程序。

我想它会更好如果玩有这样的事情:play newModule。也许它有? (所以,我刚刚错过了关于'路线'的这一部分,实际上在上面的教程中已经描述过了,太懒了...... :(。关于模块,Play framework 1.x的工作原理类似)。