Go zap日志库使用
使用案例
package mainimport ("go.uber.org/zap"
)
// 两种类型的日志记录器sugarlogger 和logger
var sugarlogger *zap.SugaredLogger
var logger *zap.Loggerfunc main() {InitLogger()defer sugarlogger.Sync()sugarlogger.Info("sugerlogger:访问了sugerlogger")logger.Info("logger:访问了sugerlogger")}
func InitLogger() {//logger = zap.NewExample() //测试环境//{"level":"info","msg":"sugerlogger:访问了sugerlogger"}//{"level":"info","msg":"logger:访问了sugerlogger"}//logger, _ = zap.NewProduction() //用于生产环境//{"level":"info","ts":1655276247.1967955,"caller":"zap/log.go:13","msg":"sugerlogger:访问了sugerlogger"}//{"level":"info","ts":1655276247.1973336,"caller":"zap/log.go:14","msg":"logger:访问了sugerlogger"}logger, _ = zap.NewDevelopment() //用户开发环境//2022-06-15T14:58:40.060+0800 INFO zap/log.go:13 sugerlogger:访问了sugerlogger//2022-06-15T14:58:40.076+0800 INFO zap/log.go:14 logger:访问了sugerloggersugarlogger = logger.Sugar()
}
自定义logger
将日志写入文件而不是终端
我们将使用 zap.new()方法配置
package mylogimport ("go.uber.org/zap""go.uber.org/zap/zapcore""os""path/filepath""time"
)var logger *zap.Logger
var SugarLogger *zap.SugaredLoggerfunc init() {encoder := getEncoder()writerSyncer := getLogWriter()core := zapcore.NewCore(encoder,writerSyncer,zapcore.DebugLevel)logger = zap.New(core)SugarLogger = logger.Sugar()
}func getEncoder() zapcore.Encoder {return zapcore.NewJSONEncoder(zap.NewProductionEncoderConfig())
}func getLogWriter() zapcore.WriteSyncer {now := time.Now().Format("2006-01-02")Path,_ := os.Getwd()LogPath := Path + string(filepath.Separator) + "mylog" + string(filepath.Separator)+ "log" + string(filepath.Separator) + nowerr := os.MkdirAll(LogPath, os.ModePerm)if err != nil {panic(err)}filePath := LogPath + string(filepath.Separator) + "log.txt"file, err := os.OpenFile(filePath, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0775)if err != nil {panic(err)}return zapcore.AddSync(file)
}
Go zap日志库使用相关推荐
- go语言 gin框架中集成zap日志库
在go语言gin框架中,日志是默认输出到终端的,但是我们在实际工作中,一般来说是需要记录服务器日志的.而最常用的日志库就是zap日志库,我们需要将gin在终端输出的内容通过zap日志库记录到文件中,首 ...
- Go开发中配置一个Logger日志的功能实现(结合zap日志库)
为什么需要Logger 一般在开发项目的时候我们都是需要一个存储日志的文件,因为在部署项目以后,我们只能通过去筛查日志进行检索问题,这时候日志是否可以呈现清晰这个对于我们进行排查工作是十分重要的,所以 ...
- 【Go进阶】如何让你Go项目中日志清晰有趣-Zap日志库
本文先介绍了Go语言原生的日志库的使用,然后详细介绍了非常流行的Uber开源的zap日志库,同时介绍了如何搭配Lumberjack实现日志的切割和归档. Zap日志库在Go语言项目中的使用 在许多Go ...
- Go 语言中的 logger 和 zap 日志库
目录 Go 语言中的 logger 和 zap 日志库 Go Logger Zap Logger Logger Sugared Logger 定制 Logger 记录到文件中 Zap logger 中 ...
- go.uber.org/zap日志库
文章目录 go.uber.org/zap日志库 1.GO SDK里Logger优缺点 2.介绍Uber-go zap 3.安装zap依赖 4.zap.NewProductionEncoderConfi ...
- Go使用Zap日志库
前言 在项目开发中,经常需要把程序运行过程中各种信息记录下来,有了详细的日志有助于问题排查和功能优化:但如何选择和使用性能好功能强大的日志库,这个就需要我们从多角度考虑. 一.日志库选型需要和比较 1 ...
- (1)go web开发之 zap日志库的使用及gin框架配置zap记录日志详细文档讲解分析
(一)介绍 zap 是go 中比较火的一个日志库,提供不同级别的日志,并且速度快 官方文档: https://pkg.go.dev/go.uber.org/zap#section-readme, 也可 ...
- go zap日志库的使用,以及封装。
go zap日志库使用说明 及 封装 1 zap日志的基本使用 1.0 zap简介 1.1 日志介绍 1.2 为什么选择zap日志 1.3 zap的安装 1.4 创建实例-两种类型 1.4.1 Log ...
- 在Go语言项目中使用Zap日志库
在Go语言项目中使用Zap日志库 Go语言原生的日志库的使用,然后详细介绍了非常流行的Uber开源的zap日志库,同时介绍了如何搭配Lumberjack实现日志的切割和归档. 一.在Go语言项目中使用 ...
- 一文告诉你如何用好uber开源的zap日志库
1. 引子 日志在后端系统中有着重要的地位,通过日志不仅可以直观看到程序的当前运行状态,更重要的是日志可以在程序发生问题时为开发人员提供线索. 在Go生态中,logrus[2]可能是使用最多的Go日志 ...
最新文章
- mongodb 结果二次调用_mongodb慢查询记录
- Android Stadio 导入Android 源码不停index
- .pyc文件还原.py文件_从镜像文件还原分区 (系统还原)
- serum血清序列号_图文教程 将serum血清预制导入你的serum
- 操作篇 isis协议实验
- knockout+echarts实现图表展示
- Quartz入门指南
- 【Oracle】RAC集群中的命令
- Python numpy 中 keepdims 的含义
- IR2130与MOSFET驱动电路分析
- Dominating Patterns UVALive - 4670 AC自动机
- 交换机之三层交换原理
- 可编程的经济的来临,基于区块链的智慧商圈
- 使用Excel 提取文本中的数字
- w ndows7启动项怎么关,win7如何关闭启动项Windows Security notification icon
- 神州优车上云之路:如何在效率、质量和成本三方面达到平衡?
- 跟大家聊聊VR全景个人感受
- 矩阵的最小路径和——动态规划
- android native层进程通信
- 初学者必看!3D建模要学什么软件?