Zap之日志记录器选择
Zap之日志记录器选择
在Zap中存在两个日志器模式:
Logger
SugaredLogger
这两种模式的最大区别在于是否类型安全,SugarLogger可以接收松散类型和多键值对:
//在第四行可以看到sugar的信息记录不需要显式的声明变量类型
sugar := zap.NewExample().Sugar()
defer sugar.Sync()
sugar.Infow("failed to fetch URL","url", "http://example.com","attempt", 3,"backoff", time.Second,
)
sugar.Infof("failed to fetch URL: %s", "http://example.com")
与之对应了Logger
需要显式的声明日志变量(strongly-typed)的类型:
同时,官方建议在高性能场景使用Logger
,其性能比sugarLogger
要高。
logger := zap.NewExample()
defer logger.Sync() //默认logger是使用无缓冲的,但是可以设置为有缓冲的,所以要习惯于使用defer关闭日志变量
logger.Info("failed to fetch URL",zap.String("url", "http://example.com"),zap.Int("attempt", 3),zap.Duration("backoff", time.Second),
)
Logger
和sugarLogger
的相互转换
logger := zap.NewExample()
defer logger.Sync()
sugar := logger.Sugar()
plain := sugar.Desugar()
Zap之日志记录器选择相关推荐
- golang xorm 自定义日志记录器,使用zap实现日志输出、切割日志
目录 1.准备并下载好需要的包 2. 连接postgresql数据库 3. zap日志工具 4.实现xorm 自定义日志记录器 5.使用 完整代码 1.准备并下载好需要的包 xorm.io/xorm ...
- Go语音基于zap的日志封装
zap日志封装 Zap是一个高性能.结构化日志库,专为Go语言设计.它由Uber开源,并且在Go社区中非常受欢迎.它的设计目标是提供一个简单易用.高效稳定.灵活可扩展的日志系统. 以下是Zap的一些主 ...
- 日志库EasyLogging++学习系列(6)—— 日志记录器
所有的日志都是由日志记录器完成的,日志记录器使用唯一的 ID(大小写敏感)来标识.在 Easylogging++ 中默认了三个现有的日志记录器: 默认日志记录器,其 ID 为:default 性能日志 ...
- Golang高性能日志库zap + lumberjack 日志切割组件详解
文章篇幅较长,可以先收藏防止迷路~ 目录 zap日志库 1. why zap? 2. 简单使用 3. 自定义logger例子 4. Gin项目使用zap 6. lumberjack 日志切割组件 za ...
- 日志记录器(设计模式--工厂方法模式)
当然了,知道工厂方式大家都是很熟悉的方法了.所以我们直接上样例吧. 题目描述:某系统日志记录器要求支持多种日志记录方式,如文件日志记录(FileLog).数据库日志记录(DatabaseLog)等,且 ...
- Golang 操作 Logger、Zap Logger 日志
阅读目录 Logger 介绍 默认的 Go Logger Go Logger 的优势和劣势 Zap Logger 1. Uber-go Zap 2. 为什么选择 Uber-go zap 3. 安装 4 ...
- Tomcat源码分析(六)--日志记录器和国际化
本系列转载自 http://blog.csdn.net/haitao111313/article/category/1179996 日志记录器挺简单的,没有很多东西,最主要的就是一个Logger接口: ...
- Golang的日志记录器
Fatal 系列函数(log.Fatalln)用来写日志消息,然后使用 os.Exit(1)终止程序. Panic 系列函数(log.Panicln)用来写日志消息,然后触发一个 panic. 日志记 ...
- logback日志记录器讲解
我们看一下日志记录器的支持,logback,既支持log4j,也支持logback,找到我们的pom文件,然后看一下他的注入包,在这里我们可以看到有log4j的jar包,有slf4j的,还有logba ...
- 优雅地记录Python程序日志2:模块组件化日志记录器
本文摘自:https://zhuanlan.zhihu.com/p/32043593 本篇将会涉及: logging的各个模块化组件 构建一个组件化的日志器 logging的模块组件化 在上一篇文章中 ...
最新文章
- 华为手机的nfc是什么功能_华为手机NFC只用来乘车?这个功能还不会用,几千块手机亏了...
- gpu装linux系统显示黑屏,linux操作系统安装gpu版本的paddlepaddle出现问题
- C++ new和delete操作符
- pandas中drop用法_python进行数据清理之pandas中的drop用法
- JZOJ 5629. 【NOI2018模拟4.4】Map
- boost::range模块replaced_if相关的测试程序
- PHP网站使用JavaScript和Iframe简单实现部分刷新效果
- oracle flex cluster,12c flex cluster小记(3)
- 使用var声明的变量 和 直接赋值并未声明的变量的区别
- Forms Builder常用函数
- android github 评分控件_「开源」Arcgis for Android测量工具更新至V1.9,新增绘制控件...
- angular post php 404,AngularJS POST失败:飞行前响应具有无效的HTTP状态代码404
- 【雷达】基于粒子群算法优化综合微带天线阵列方向图附matlab代码
- 新浪微博平台的多级架构
- 机器学习sklearn----支持向量机SVC模型评估指标
- 系统集成项目管理工程师计算题(期望值)
- linux 检查zip是否损坏,用-v参数 unzip -v test.zip 检查zip文件是否损坏代常亮
- has an unsupported return type
- 一篇文章讲透控制反转和依赖注入
- mysql 1236错误_mysql报1236错误解决方法