2012-11-05 29 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的工作原理類似)。