我跟着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停止并返回控制台...)
我已经查过:
-
经过一些调查,我发现在删除对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'文件。
答案 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是一个应用程序,而不是一个模块。我必须:
删除'views'文件夹
然后我可以称之为模块,但不是应用程序。
我想它会更好如果游戏有这样的东西:玩newModule。也许它有?
(所以,我刚刚错过了关于'路线'的这部分,实际上是在上面的教程中描述的。太懒了读.. :(。Play framework 1.x的工作方式类似于模块。)< / p>