欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

如何打造Zap開箱即用日志組件

本篇文章為大家展示了如何打造Zap開箱即用日志組件,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

創(chuàng)新互聯(lián)制作網(wǎng)站網(wǎng)頁(yè)找三站合一網(wǎng)站制作公司,專注于網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站制作、成都網(wǎng)站制作,網(wǎng)站設(shè)計(jì),企業(yè)網(wǎng)站搭建,網(wǎng)站開發(fā),建網(wǎng)站業(yè)務(wù),680元做網(wǎng)站,已為近1000家服務(wù),創(chuàng)新互聯(lián)網(wǎng)站建設(shè)將一如既往的為我們的客戶提供最優(yōu)質(zhì)的網(wǎng)站建設(shè)、網(wǎng)絡(luò)營(yíng)銷推廣服務(wù)!

logrus 是 golang 一款非常優(yōu)秀的日志框架, 其優(yōu)點(diǎn)非常明顯:

  • 優(yōu)雅的代碼框架設(shè)計(jì), 可以作為我們?cè)O(shè)計(jì)組件的參考. 具體請(qǐng)參見我前面文章(鏈接文末給出)
  • 使用簡(jiǎn)單
  • 組件化的開發(fā)思路
  • 靈活的輸出方式

但是, 性能終究是忍痛舍棄 logrus 的“阿喀琉斯之踵”, 前面的文章深入研究了 logrus 性能低的原因

目前 golang 日志庫(kù)的大眾選擇主要集中在: logrus, zap, zerolog. zap 和 zerolog 的性能都是優(yōu)秀的, 但是從用法習(xí)慣上我更傾向于 zap.

 

簡(jiǎn)單介紹 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"}
 

如果我們對(duì) logrus 的 key-value 理論比較在意的話, 使用 zap infow 可以完美解決

 

Zap 使用起來不便利的地方

  1. Zap 使用上不能像 logrus 那樣開箱即用
  2. 使用者需要自己去組裝相關(guān)函數(shù)
  3. Zap 同樣不提供日志切割的功能, 但是想添加上這個(gè)功能沒有 logrus 那樣便利

基于這些問題, 我封裝了一套開箱即用的日志組件: https://github.com/georgehao/log

 

打造 Zap 開箱即用日志組件

提供的功能:

  • 像 logrus 一樣, 全局的 Debug, Info ... 函數(shù)
  • 日志分割功能. 默認(rèn)文件大小1024M,自動(dòng)壓縮, 最大有3個(gè)文件備份,備份保存時(shí)間7天, 不會(huì)打印日志被調(diào)用的文文件名和位置
  • 日志默認(rèn)會(huì)被分成五類文件:xxx.log.DEBUG,xxx.log.INFO, xxx.log.WARN, xxx.log.ERROR, xxx.log.Request. error, panic. fatal 都會(huì)打印在xxx.log.ERROR. xxx.log.Request輸出 request log 的地方(如果有需要的話)
 

框架圖

如何打造Zap開箱即用日志組件  
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"}
}

上述內(nèi)容就是如何打造Zap開箱即用日志組件,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

分享名稱:如何打造Zap開箱即用日志組件
URL分享:http://chinadenli.net/article42/podoec.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站響應(yīng)式網(wǎng)站、定制網(wǎng)站動(dòng)態(tài)網(wǎng)站、用戶體驗(yàn)App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)