本篇文章為大家展示了如何打造Zap開箱即用日志組件,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
創新互聯制作網站網頁找三站合一網站制作公司,專注于網頁設計,網站制作、成都網站制作,網站設計,企業網站搭建,網站開發,建網站業務,680元做網站,已為近1000家服務,創新互聯網站建設將一如既往的為我們的客戶提供最優質的網站建設、網絡營銷推廣服務!
logrus 是 golang 一款非常優秀的日志框架, 其優點非常明顯:
但是, 性能終究是忍痛舍棄 logrus 的“阿喀琉斯之踵”, 前面的文章深入研究了 logrus 性能低的原因
目前 golang 日志庫的大眾選擇主要集中在: logrus, zap, zerolog. zap 和 zerolog 的性能都是優秀的, 但是從用法習慣上我更傾向于 zap.
Zap 提供三種不同方式的輸出(以 Info為 例)
log.Info("hello zap") // {"level":"info","ts":1576423173.016333,"caller":"test_zap/main.go:28","msg":"hello zap"}
log.Infof("hello %s", "zap") // {"level":"info","ts":1576423203.056074,"caller":"test_zap/main.go:29","msg":"hello zap"}
log.Infow("hello zap", "field1", "value1") //{"level":"info","ts":1576423203.0560799,"caller":"test_zap/main.go:30","msg":"hello zap","field1":"value1"}
如果我們對 logrus 的 key-value 理論比較在意的話, 使用 zap infow 可以完美解決
基于這些問題, 我封裝了一套開箱即用的日志組件: https://github.com/georgehao/log
提供的功能:
go get github.com/georgehao/log
package main
import "github.com/georgehao/log"
func main() {
// init log
// set absolute path, and level
// set output level
// don't need request log
// set log's caller using logOption
log.Init("./test.log", log.DebugLevel, false, log.SetCaller(true))
log.Info("hello george log")
// flush
log.Sync()
//output: {"level":"info","ts":"2019-12-16T10:37:11.364+0800","caller":"example/example.go:12","msg":"hello george log"}
}
上述內容就是如何打造Zap開箱即用日志組件,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注創新互聯行業資訊頻道。
分享名稱:如何打造Zap開箱即用日志組件
URL分享:http://vcdvsql.cn/article42/podoec.html
成都網站建設公司_創新互聯,為您提供商城網站、響應式網站、定制網站、動態網站、用戶體驗、App開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯