栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

golang的zap怎么使用

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

golang的zap怎么使用

zap是一个高性能日志库,下面简单介绍一下zap的使用。

1.下载zap包 (推荐学习:go)

因为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 loggervar 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, //1GLocalTime: true,Compress:  true,})encoder := zap.NewProductionEncoderConfig()encoder.EncodeTime = zapcore.ISO8601TimeEncodercore := 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...)}

简单封装后使用示例:

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

以上就是golang的zap怎么使用的详细内容,更多请关注考高分网其它相关文章!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/794164.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号