go zap + lumberjack 日志按大小分割demo整理
生活随笔
收集整理的這篇文章主要介紹了
go zap + lumberjack 日志按大小分割demo整理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
安裝:
go get -u go.uber.org/zap go get -u github.com/natefinch/lumberjack // 如果使用go mod管理包需要在執行 go mod vendor package mainimport ("net/http""github.com/natefinch/lumberjack""go.uber.org/zap""go.uber.org/zap/zapcore" )var sugarLogger *zap.SugaredLoggerfunc main() {InitLogger()defer sugarLogger.Sync()simpleHttpGet("www.sogo.com")simpleHttpGet("http://www.sogo.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.ISO8601TimeEncoderencoderConfig.EncodeLevel = zapcore.CapitalLevelEncoderreturn zapcore.NewConsoleEncoder(encoderConfig) }func getLogWriter() zapcore.WriteSyncer {lumberJackLogger := &lumberjack.Logger{Filename: "./test.log", // 日志輸出文件MaxSize: 1, // 日志最大保存1MMaxBackups: 5, // 就日志保留5個備份MaxAge: 30, // 最多保留30個日志 和MaxBackups參數配置1個就可以Compress: false, // 自導打 gzip包 默認false}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()} }日志輸出示例
參考
https://github.com/uber-go/zap
https://github.com/natefinch/lumberjack
總結
以上是生活随笔為你收集整理的go zap + lumberjack 日志按大小分割demo整理的全部內容,希望文章能夠幫你解決所遇到的問題。