2013年8月1日

Grails 1/30 訊息記錄(Logging)機制

Grails 採用 Apache log4j 作為預設的訊息記錄(logging)機制,提供新建的的專案,立即可用的 LOG 方法,是 Grails 開發者必須瞭解的基礎。

常用的 LOG 可分為四個等級(level):

  1. DEBUG
    供除錯參考用的訊息,通常只有在 development 階段才需要,此類訊息是開發者才需要瞭解。為了避免 LOG 檔訊息數量過多影響效能且佔據磁碟容量,一般在 production 階段會關閉 DEBUG 層級的訊息輸出。
  2. INFO
    記錄一些發生的日常事件,例如一位管理者登入、已刪除一筆資料...等。在 development 階段可供開發者搭配除錯需求追蹤功能的測試結果,建議開啟;到 production 階段若開啟則有助於瞭解回溯至某個時間點進行什麼樣的操作,但是增加訊息量,若系統已經運作穩定則可以視情況選擇開啟或關閉。
  3. WARN
    給予開發者或系統管理者警告訊息,這類訊息不一定要立即處置,因為不會對功能操作產生立即或嚴重的影響;在 production 階段仍建議開啟。
  4. ERROR
    錯誤訊息是一定要優先處理的問題,在 production 階段一定要開啟並定期追蹤,如果發現錯誤應立即列入 Issue 控管。

新建的 Grails 專案已包含 log 物件,在 Controller、Domain Class 皆可直接存取,依照層級輸出錯誤信息。

log.info "User ${user.id} has been created."

if (....) {

    log.warn "It's not a good idea."

}

try {
}
catch (e) {
    log.error "BAD News! ..."
}

在預設的設定下,僅有 warn 層級以上的訊息會被顯示在終端機(console)畫面,所以需要先修改 grails-app/conf/Config.groovy 的 log4j { ... } 設定區塊。增加:

info "grails.app"


debug "grails.app"

如此才能讓 info 與 debug 層級的 LOG 訊息也能顯示。

延伸閱讀:


沒有留言:

張貼留言

lyhcode by lyhcode
歡迎轉載,請務必註明出處!