当前位置: 首页 > news >正文

Go语言中的Zap日志库

zap

USE

  • go get -u go.uber.org/zap
package mainimport ("go.uber.org/zap""net/http"
)var logger *zap.Loggerfunc main() {InitLogger()defer logger.Sync() //关闭之前 刷新缓冲区的内容到里面simpleHttpGet("www.baidu.com")simpleHttpGet("http://www.baidu.com")
}func InitLogger() {logger, _ = zap.NewProduction()
}func simpleHttpGet(url string) {resp, err := http.Get(url)if err != nil {logger.Error("Error fetching url..",zap.String("url", url),zap.Error(err))} else {logger.Info("Success..",zap.String("statusCode", resp.Status),zap.String("url", url))resp.Body.Close()}
}

日志写入文件

  • 日志切片 go get gopkg.in/natefinch/lumberjack.v2
package mainimport ("net/http""go.uber.org/zap""go.uber.org/zap/zapcore""gopkg.in/natefinch/lumberjack.v2"
)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()) //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:    200,   //MVMaxBackups: 5,     //最大备份书来给你MaxAge:     30,    //最大备份天数Compress:   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()}
}

Gin使用zip

  • gin 框架使用的是engine.Use(Logger(), Recovery())这个做为日志
  • 使用gin.New() 去实例化一个 然后使用项目
  • 后续会去更新
http://www.dtcms.com/a/445891.html

相关文章:

  • Linux网络编程——UdpServer
  • Daily算法刷题【面试经典150题-3️⃣】
  • MybatisPlus和pagehelper分页冲突—关于jsqlparser、pagehelper、MybatisPlus三者的版本兼容问题
  • R 数组:深入解析与高效使用
  • 缩点学习笔记
  • Go基础:用Go语言操作MongoDB详解
  • 第六章:适配器模式 - 接口转换的艺术大师
  • ARM环境日志系统的简单设计思路
  • 网站名称推荐大气聚财的公司名字
  • 【JVM】——实战篇
  • 那里有正规网站开发培训学校个人网站是怎么样的
  • 高端网站设计简介推荐外贸网站建设的公司
  • asp.net 网站安装工商核名在哪个网站
  • 基于websocket的多用户网页五子棋(五)
  • 【图像处理基石】什么是全景视觉?
  • 【Linux】线程同步和生产者消费者模型
  • 《嵌入式驱动(三):字符设备驱动开发》
  • 做的网站提示磁盘空间不足投票活动网站怎么做
  • 项目1:FFMPEG推流器讲解(二):FFMPEG输出模块初始化
  • 中级前端进阶方向 框架篇 三十四) 前端自动化测试 + 【步骤落地 + 了解】
  • 【开题答辩全过程】以 python杭州亚运会数据分析与可视化开题为例,包含答辩的问题和答案
  • 中国做外贸网站有哪些网站下雪的效果怎么做的
  • XSLT `<choose>` 元素详解
  • 汽车零部件英语词汇 | 3000 最常用单词系列
  • 深圳优秀网站建设价格网站视频开发平台
  • 菏泽最好的网站建设公司安徽建设工程信息网查
  • Video-of-Thought论文阅读
  • 做下载类型网站怎样划算做网站常用的技术有哪些
  • stp instance 0 cost 5000 概念及题目
  • KVM创建的虚拟机,虚拟机的网卡是如何生成的