beego框架之日志模塊


  參考beego開發文檔:http://beego.me/docs/module/logs.md

  beego框架之日志模塊默認支持4種記錄方式:
  1. 終端輸出(console) :這種方式一般用在開發環境下面,方便調試。
  2. 本地文件(file)       :這種方式一般用來保存常規日志,為生產環境中常用的方式。
  3. 網絡方式(network):這種方式可以用來將日志發送到指定服務器,一般可以用來根據日志觸發事件等。
  4. 發送郵件(email)   :這種方式一般是將生產環境下比較重要的日志發送給相應的管理人員,以便及時發現和解決問題。

  beego框架之日志模塊等級定義在github.com/astaxie/beego/logs/log.go:(級別以此遞減)
  const (
    LevelEmergency = iota // 緊急級別
    LevelAlert                   // 報警級別
    LevelCritical                // 嚴重錯誤級別
    LevelError                   // 錯誤級別
    LevelWarning              // 警告級別
    LevelNotice                 // 注意級別
    LevelInformational       // 報告級別
    LevelDebug                 // 除錯級別
  )

1. 終端輸出(console)記錄方式示例:

 1 package main
 2 
 3 import (
 4     "github.com/astaxie/beego/logs"
 5 )
 6 
 7 func main() {
 8     log := logs.NewLogger(10000)  // 創建一個日志記錄器,參數為緩沖區的大小
 9     log.SetLogger("console", "")  // 設置日志記錄方式:控制台記錄
10     log.SetLevel(logs.LevelDebug) // 設置日志寫入緩沖區的等級:Debug級別(最低級別,所以所有log都會輸入到緩沖區)
11     log.EnableFuncCallDepth(true) // 輸出log時能顯示輸出文件名和行號(非必須)
12 
13     log.Emergency("Emergency")
14     log.Alert("Alert")
15     log.Critical("Critical")
16     log.Error("Error")
17     log.Warning("Warning")
18     log.Notice("Notice")
19     log.Informational("Informational")
20     log.Debug("Debug")
21 
22     log.Close()
23 }
24 
25 程序輸出:
26     2015/06/29 12:01:07 [main.go:13] [M] Emergency
27     2015/06/29 12:01:07 [main.go:14] [A] Alert
28     2015/06/29 12:01:07 [main.go:15] [C] Critical
29     2015/06/29 12:01:07 [main.go:16] [E] Error
30     2015/06/29 12:01:07 [main.go:17] [W] Warning
31     2015/06/29 12:01:07 [main.go:18] [N] Notice
32     2015/06/29 12:01:07 [main.go:19] [I] Informational
33     2015/06/29 12:01:07 [main.go:20] [D] Debug
34 
35 備注:如果log.SetLevel(logs.LevelDebug)修改為log.SetLevel(logs.LevelEmergency),則只輸出Emergency級別的log,其他級別的log不會輸出。

2. 本地文件(file)記錄方式示例:

package main

import (
    "github.com/astaxie/beego/logs"
)

func main() {
    log := logs.NewLogger(10000) // 創建一個日志記錄器,參數為緩沖區的大小
    // 設置配置文件
    jsonConfig := `{
        "filename" : "test.log", // 文件名
        "maxlines" : 1000,       // 最大行
        "maxsize"  : 10240       // 最大Size
    }`
    log.SetLogger("file", jsonConfig) // 設置日志記錄方式:本地文件記錄
    log.SetLevel(logs.LevelDebug)     // 設置日志寫入緩沖區的等級
    log.EnableFuncCallDepth(true)     // 輸出log時能顯示輸出文件名和行號(非必須)

    log.Emergency("Emergency")
    log.Alert("Alert")
    log.Critical("Critical")
    log.Error("Error")
    log.Warning("Warning")
    log.Notice("Notice")
    log.Informational("Informational")
    log.Debug("Debug")

    log.Flush() // 將日志從緩沖區讀出,寫入到文件
    log.Close()
}

輸出結果:test.log
2015/06/29 12:55:29 [main.go:19] [M] Emergency
2015/06/29 12:55:29 [main.go:20] [A] Alert
2015/06/29 12:55:29 [main.go:21] [C] Critical
2015/06/29 12:55:29 [main.go:22] [E] Error
2015/06/29 12:55:29 [main.go:23] [W] Warning
2015/06/29 12:55:29 [main.go:24] [N] Notice
2015/06/29 12:55:29 [main.go:25] [I] Informational
2015/06/29 12:55:29 [main.go:26] [D] Debug

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM