亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > 使用Lumberjack+zap進行日志切割歸檔操作

使用Lumberjack+zap進行日志切割歸檔操作

熱門標簽:谷歌美發店地圖標注 地圖區域圖標注后導出 官渡電銷外呼管理系統怎么收費 利用地圖標注位置 赤峰電銷 400開頭電話怎樣申請 杭州人工智能電銷機器人費用 江蘇呼叫中心外呼系統有效果嗎 貴州電話智能外呼系統

使用Lumberjack+zap進行日志切割歸檔

為了添加日志切割歸檔功能,我們將使用第三方庫Lumberjack來實現。

安裝

執行下面的命令安裝Lumberjack

go get -u github.com/natefinch/lumberjack

zap logger中加入Lumberjack

要在zap中加入Lumberjack支持,我們需要修改WriteSyncer代碼。我們將按照下面的代碼修改getLogWriter()函數:

func getLogWriter() zapcore.WriteSyncer {
 lumberJackLogger := lumberjack.Logger{
 Filename: "./test.log",
 MaxSize: 10,
 MaxBackups: 5,
 MaxAge:  30,
 Compress: false,
 }
 return zapcore.AddSync(lumberJackLogger)
}

Lumberjack Logger采用以下屬性作為輸入:

Filename: 日志文件的位置

MaxSize:在進行切割之前,日志文件的最大大小(以MB為單位)

MaxBackups:保留舊文件的最大個數

MaxAges:保留舊文件的最大天數

Compress:是否壓縮/歸檔舊文件

測試所有功能

package main
import (
 "net/http"
 "go.uber.org/zap"
 "go.uber.org/zap/zapcore"
 lumberjack "gopkg.in/natefinch/lumberjack.v2"
)
var sugarLogger *zap.SugaredLogger
func main() {
 InitLogger()
 defer sugarLogger.Sync()
 for i:=0; i  10000;i++ {
 simpleHttpGet("www.baidu.com")
 simpleHttpGet("http://www.baidu.com")
 }
}
func InitLogger() {
 writeSyncer := getLogWriter()
 encoder := getEncoder()
 core := zapcore.NewCore(encoder, writeSyncer, zapcore.DebugLevel)
 logger := zap.New(core, zap.AddCaller())
 sugarLogger = logger.Sugar()
}
func getEncoder() zapcore.Encoder {
 encoderConfig := zap.NewProductionEncoderConfig()
 encoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder
 encoderConfig.EncodeLevel = zapcore.CapitalLevelEncoder
 return zapcore.NewConsoleEncoder(encoderConfig)
}
func getLogWriter() zapcore.WriteSyncer {
 lumberJackLogger := lumberjack.Logger{
 Filename: "/aseit-data/gocode/src/gitlab.aseit.cn/AI_PRODUCT/psd_be_zhang/test/test.log", // ⽇志⽂件路徑
 MaxSize: 1,  // 1M=1024KB=1024000byte
 MaxBackups: 5,  // 最多保留5個備份
 MaxAge:  30,  // days
 Compress: false, // 是否壓縮 disabled by default
 }
 return zapcore.AddSync(lumberJackLogger)
}
func simpleHttpGet(url string) {
 sugarLogger.Debugf("Trying to hit GET request for %s", url)
 resp, err := http.Get(url)
 if err != nil {
 sugarLogger.Errorf("Error fetching URL %s : Error = %s", url, err)
 } else {
 sugarLogger.Infof("Success! statusCode = %s for URL %s", resp.Status, url)
 resp.Body.Close()
 }
}

同時,可以在main函數中循環記錄日志,測試日志文件是否會自動切割和歸檔(日志文件每1MB會切割并且在當前目錄下最多保存5個備份)。

補充:golang zap日志的使用

zap是一個高性能日志庫,github鏈接【傳送門】,下面簡單介紹一下zap的使用。

1.下載zap包

因為zap是uber開源的,zap內使用的包是在go.uber.org/zap,如果直接go get這個包,可能會提示get不下來。可以go get github.com/uber-go/zap,然后再把zap目錄復制到src/go.uber.org下(可能還會需要go.uber.org/atomic和go.uber.org/multierr,均可參考該方法get下來)

2.zap簡單封裝示例。

package logger
 
import (
 "go.uber.org/zap"
 "go.uber.org/zap/zapcore"
 "gopkg.in/natefinch/lumberjack.v2"
)
 
// error logger
var errorLogger *zap.SugaredLogger
 
var levelMap = map[string]zapcore.Level{
 "debug": zapcore.DebugLevel,
 "info": zapcore.InfoLevel,
 "warn": zapcore.WarnLevel,
 "error": zapcore.ErrorLevel,
 "dpanic": zapcore.DPanicLevel,
 "panic": zapcore.PanicLevel,
 "fatal": zapcore.FatalLevel,
}
 
func getLoggerLevel(lvl string) zapcore.Level {
 if level, ok := levelMap[lvl]; ok {
 return level
 }
 return zapcore.InfoLevel
}
 
func init() {
 fileName := "zap.log"
 level := getLoggerLevel("debug")
 syncWriter := zapcore.AddSync(lumberjack.Logger{
 Filename: fileName,
 MaxSize: 1  30, //1G
 LocalTime: true,
 Compress: true,
 })
 encoder := zap.NewProductionEncoderConfig()
 encoder.EncodeTime = zapcore.ISO8601TimeEncoder
 core := zapcore.NewCore(zapcore.NewJSONEncoder(encoder), syncWriter, zap.NewAtomicLevelAt(level))
 logger := zap.New(core, zap.AddCaller(), zap.AddCallerSkip(1))
 errorLogger = logger.Sugar()
}
 
func Debug(args ...interface{}) {
 errorLogger.Debug(args...)
}
 
func Debugf(template string, args ...interface{}) {
 errorLogger.Debugf(template, args...)
}
 
func Info(args ...interface{}) {
 errorLogger.Info(args...)
}
 
func Infof(template string, args ...interface{}) {
 errorLogger.Infof(template, args...)
}
 
func Warn(args ...interface{}) {
 errorLogger.Warn(args...)
}
 
func Warnf(template string, args ...interface{}) {
 errorLogger.Warnf(template, args...)
}
 
func Error(args ...interface{}) {
 errorLogger.Error(args...)
}
 
func Errorf(template string, args ...interface{}) {
 errorLogger.Errorf(template, args...)
}
 
func DPanic(args ...interface{}) {
 errorLogger.DPanic(args...)
}
 
func DPanicf(template string, args ...interface{}) {
 errorLogger.DPanicf(template, args...)
}
 
func Panic(args ...interface{}) {
 errorLogger.Panic(args...)
}
 
func Panicf(template string, args ...interface{}) {
 errorLogger.Panicf(template, args...)
}
 
func Fatal(args ...interface{}) {
 errorLogger.Fatal(args...)
}
 
func Fatalf(template string, args ...interface{}) {
 errorLogger.Fatalf(template, args...)
}

3.簡單封裝后使用示例:

package main
 
import (
 "logger"
)
 
func main() {
 logger.Infof("simple zap logger example") 
}

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • golang 輸出重定向:fmt Log,子進程Log,第三方庫logrus的詳解
  • golang的time包:秒、毫秒、納秒時間戳輸出方式
  • golang 使用time包獲取時間戳與日期格式化操作
  • golang return省略用法說明
  • golang有用的庫及工具 之 zap.Logger包的使用指南

標簽:保定 泰安 武漢 松原 河池 鷹潭 黔西 宜春

巨人網絡通訊聲明:本文標題《使用Lumberjack+zap進行日志切割歸檔操作》,本文關鍵詞  使用,Lumberjack+zap,進行,日志,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《使用Lumberjack+zap進行日志切割歸檔操作》相關的同類信息!
  • 本頁收集關于使用Lumberjack+zap進行日志切割歸檔操作的相關信息資訊供網民參考!
  • 推薦文章
    色综合久久天天综合| 青草国产在线| 国产精品自拍在线| 国产91精品一区二区| 亚洲天堂免费观看| 九九精品在线播放| 久久国产一久久高清| 国产国产人免费视频成69堂| 91麻豆精品国产自产在线观看一区| 午夜欧美福利| 亚洲 国产精品 日韩| 天天色成人| 免费的黄色小视频| 国产成人精品综合在线| 日日夜人人澡人人澡人人看免| 精品视频免费在线| 国产高清在线精品一区二区| 精品视频免费看| 欧美一级视频免费观看| 国产高清在线精品一区二区| 国产伦久视频免费观看 视频| 国产亚洲精品成人a在线| 99热精品一区| 精品国产三级a∨在线观看| 九九精品久久久久久久久| 九九精品久久久久久久久| 九九久久99| 日本免费区| 午夜在线亚洲| 可以免费看污视频的网站| 成人免费一级纶理片| 国产伦久视频免费观看视频| 韩国三级视频网站| 91麻豆爱豆果冻天美星空| 天天做日日爱夜夜爽| 精品国产三级a| 亚洲精品影院久久久久久| 天天色色色| 成人av在线播放| 韩国三级视频网站| 你懂的日韩| 国产麻豆精品hdvideoss| 美国一区二区三区| 精品久久久久久综合网| 成人高清护士在线播放| 久久国产精品自由自在| 精品视频在线看| 亚洲www美色| 成人高清视频在线观看| 黄视频网站免费看| 国产一级生活片| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 久久国产影院| 国产亚洲免费观看| 国产视频网站在线观看| 欧美日本免费| 亚洲天堂免费| 一a一级片| 韩国三级视频网站| 天天做人人爱夜夜爽2020| 成人在激情在线视频| 沈樵在线观看福利| 毛片高清| 色综合久久天天综线观看| 亚洲天堂一区二区三区四区| 国产a网| 国产91丝袜在线播放0| 你懂的日韩| 色综合久久天天综合| 可以免费看毛片的网站| 91麻豆精品国产自产在线观看一区| 欧美激情一区二区三区在线| 国产精品免费精品自在线观看| 成人影视在线播放| 91麻豆国产级在线| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 国产精品1024永久免费视频| 青青久久精品| 免费一级生活片| 中文字幕一区二区三区精彩视频| 天天做日日爱| 超级乱淫黄漫画免费| 日本免费乱理伦片在线观看2018| 韩国三级视频在线观看| 成人免费高清视频| 久久国产影视免费精品| 精品美女| 国产成a人片在线观看视频| 欧美大片一区| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 日韩在线观看免费完整版视频| 日本特黄特黄aaaaa大片| 午夜欧美福利| 欧美日本韩国| 99色视频在线| 天天做日日爱夜夜爽| 日韩专区亚洲综合久久| 精品在线视频播放| 日韩av片免费播放| 亚洲 国产精品 日韩| 精品国产一区二区三区久 | 国产一区二区福利久久| 久久精品欧美一区二区| 欧美一区二区三区性| 免费的黄色小视频| 一级女性全黄久久生活片| 四虎久久精品国产| 精品国产一区二区三区久久久狼| 麻豆午夜视频| 久久国产一区二区| 四虎久久精品国产| 成人高清视频在线观看| 精品国产一区二区三区国产馆| 一级毛片看真人在线视频| 欧美激情一区二区三区视频高清| 日韩在线观看视频网站| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 青青青草视频在线观看| 一级毛片视频在线观看| 一本高清在线| 日韩欧美一二三区| 九九干| 色综合久久天天综线观看| 香蕉视频一级| 中文字幕Aⅴ资源网| 国产伦久视频免费观看 视频| 免费的黄色小视频| 一级女性大黄生活片免费| 韩国妈妈的朋友在线播放| 黄色免费三级| 色综合久久天天综合| 国产网站免费在线观看| 日韩专区在线播放| 麻豆网站在线免费观看| 天天色色色| 欧美激情一区二区三区视频高清| 国产a毛片| 日日夜人人澡人人澡人人看免| 韩国三级香港三级日本三级| 国产不卡精品一区二区三区| 国产成+人+综合+亚洲不卡| 中文字幕一区二区三区 精品| 久久精品欧美一区二区| 中文字幕Aⅴ资源网| 亚洲第一视频在线播放| 91麻豆高清国产在线播放| 色综合久久天天综线观看| 成人高清视频免费观看| 国产视频一区二区在线观看| 国产a视频| 日日日夜夜操| 日韩免费在线观看视频| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 国产一区二区精品| 国产一区二区精品久久91| 韩国妈妈的朋友在线播放| 青青青草影院| 欧美另类videosbestsex久久| 国产91精品系列在线观看| 韩国三级香港三级日本三级| 九九免费精品视频| 国产一区二区精品尤物| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 91麻豆高清国产在线播放| 91麻豆精品国产综合久久久| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 国产韩国精品一区二区三区| 久久精品人人做人人爽97| 久久久久久久久综合影视网| 欧美国产日韩一区二区三区| 久草免费资源| 天天做日日爱| 天天做日日爱| 成人a大片在线观看| 免费一级片在线观看| 午夜在线亚洲| 精品国产一区二区三区久久久狼| 久久精品欧美一区二区| 免费的黄视频| 91麻豆国产级在线| 久草免费资源| 美国一区二区三区| 欧美a级成人淫片免费看| 日韩专区一区| 国产国语对白一级毛片| 99久久精品国产高清一区二区 | 日本免费乱理伦片在线观看2018| 亚久久伊人精品青青草原2020| 国产综合成人观看在线| 免费的黄色小视频| 成人免费网站久久久| 青青久热| 国产精品自拍亚洲| 日韩avdvd| 国产成人精品在线| 久久久成人网| 国产精品自拍在线观看| 人人干人人草| 深夜做爰性大片中文| 四虎影视库国产精品一区|