2012-09-20 65 views
1

我在登錄Grails時遇到了問題。我如何着手將日誌寫入文件?另外我想要不同級別的日誌進入不同的文件?Grails將不同級別的日誌寫入文件

還有生產和開發日誌的設置?例如,如果我在開發中運行項目,那麼沒有catalina.out,日誌文件將在哪裏出現?

例子:

log.info "I am working fine look: ..." 

信息,我想進入可以說info.log建立

log.error "Bad coding results in: ..." 

錯誤,我想進入標準的Tomcat日誌:catalina.out的

log.debug "Debugging is a pain: ..." 
log.fatal "Just died because..." 

其餘的日誌級別我想去int o fine.log

非常感謝。

P.S:例子將不勝感激。

+0

Grails文檔有大約記錄一個很好的部分,我認爲你可以找到所有的答案有http://grails.org/doc/latest/guide/ conf.html#logging – dimcookies

+0

@enterlezi你應該添加這個作爲答案:) – chrislovecnm

+3

我不認爲單個鏈接是答案。隨意使用它並提供完整的答案 – dimcookies

回答

4

它(相對)簡單。您需要先設置日誌級別,然後激活它,然後寫入它。 因此,標準是日誌級別錯誤處於打開狀態,所以使用log.error「」寫入的任何內容都會向stdout發送錯誤消息(如果您沒有更改appender行爲)

如果您希望應用程序顯示錯誤,警告和信息,但不能調試。

Config.groovy中下的log4j,讓改變附加目的地,告訴我們是誰在說話(超類收費是別人的設置

appenders { 
    console name:'stdout', layout:pattern(conversionPattern: '%d{[dd.MM.yy HH:mm:ss.SSS]} %-5p %c %x - %m%n') 
} 

然後我們改變我們的應用程序,以「信息」(日誌級別所以會寫錯誤,警告和信息對於我們的應用程序),之後錯誤之前追加程序添加一行

info 'grails.app' 

最後,讓我們嘗試一些代碼,所以在任何控制器或類似,添加以下三行

log.debug "First piggy wrote to Debug" 
log.info "Second piggy wrote to Info" 
log.error "And the third piggy wrote to Error" 

而且我的控制檯說:

[22.10.13 10:37:43.446] INFO grails.app.controllers.crmapper.CrMapperController - Second piggy wrote to Info 
[22.10.13 10:37:43.446] ERROR grails.app.controllers.crmapper.CrMapperController - And the third piggy wrote to Error