今天來介紹 Logging,使用 Logging ,我們可以印出訊息,藉著這些訊息來進行除錯。
在 import "github.com/astaxie/beego" 以後,beego 有這些函式可以使用:
基本上對應到 syslog 的 Severity level。
beego.Debug("this is debug")
beego.Info("this is info")
beego.Notice("this is notice")
beego.Warn("this is warn")
beego.Error("this is error")
beego.Critical("this is critical")
beego.Alert("this is alert")
beego.Emergency("this is emergency")
基本上,這些 log 會輸出到 console 上,要輸出到檔案,可以在 main.go 裡用 SetLogger() 來指定。
beego.SetLogger("file", {"filename": "logs/output.log"})
如果不要輸出到 console,可以用 DelLogger("console")
beego.BeeLogger.DelLogger("console")
除了 console 與 file 之外,也可以將 log 以 SMTP/Slack 寄送。
// SMTP
import (
"github.com/astaxie/beego/logs"
)
beego.SetLogger("smtp", `{"username":"user@example.com","password":"xxxxxxxx","host":"smtp.example.com:587","sendTos":["user@example.com"]}`)
beego.Critical("sendmail critical") // 此時就會寄出!!
// Slack
import (
"github.com/astaxie/beego/logs"
)
beego.SetLogger("slack", `{"webhookurl":"https://slack_webhook_url"}`)
beego.Debug("this is debug message")
其實看了原始碼以後,會發現還有 multifile, conn, es, jianliao, alils 這幾個可以使用:
至於用法,我就沒有去深究了。