W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
這是一個用來處理日志的庫,它的設(shè)計思路來自于 database/sql,目前支持的引擎有 file、console、net、smtp,可以通過如下方式進(jìn)行安裝:
go get github.com/astaxie/beego/logs
首先引入包:
import (
"github.com/astaxie/beego/logs"
)
然后添加輸出引擎(log 支持同時輸出到多個引擎),這里我們以 console 為例,第一個參數(shù)是引擎名(包括:console、file、conn、smtp、es、multifile)
logs.SetLogger("console")
添加輸出引擎也支持第二個參數(shù),用來表示配置信息,詳細(xì)的配置請看下面介紹:
logs.SetLogger(logs.AdapterFile,`{"filename":"project.log","level":7,"maxlines":0,"maxsize":0,"daily":true,"maxdays":10,"color":true}`)
然后我們就可以在我們的邏輯中開始任意的使用了:
package main
import (
"github.com/astaxie/beego/logs"
)
func main() {
//an official log.Logger
l := logs.GetLogger()
l.Println("this is a message of http")
//an official log.Logger with prefix ORM
logs.GetLogger("ORM").Println("this is a message of orm")
logs.Debug("my book is bought in the year of ", 2016)
logs.Info("this %s cat is %v years old", "yellow", 3)
logs.Warn("json is a type of kv like", map[string]int{"key": 2016})
logs.Error(1024, "is a very", "good game")
logs.Critical("oh,crash")
}
一般推薦使用通用方式進(jìn)行日志,但依然支持單獨(dú)聲明來使用獨(dú)立的日志
package main
import (
"github.com/astaxie/beego/logs"
)
func main() {
log := logs.NewLogger()
log.SetLogger(logs.AdapterConsole)
log.Debug("this is a debug message")
}
日志默認(rèn)不輸出調(diào)用的文件名和文件行號,如果你期望輸出調(diào)用的文件名和文件行號,可以如下設(shè)置
logs.EnableFuncCallDepth(true)
開啟傳入?yún)?shù) true,關(guān)閉傳入?yún)?shù) false,默認(rèn)是關(guān)閉的.
如果你的應(yīng)用自己封裝了調(diào)用 log 包,那么需要設(shè)置 SetLogFuncCallDepth,默認(rèn)是 2,也就是直接調(diào)用的層級,如果你封裝了多層,那么需要根據(jù)自己的需求進(jìn)行調(diào)整.
logs.SetLogFuncCallDepth(3)
為了提升性能, 可以設(shè)置異步輸出:
logs.Async()
異步輸出允許設(shè)置緩沖 chan 的大小
logs.Async(1e3)
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: