您的位置 首页 技术

golang的zap怎么使用

zap是一个高性能日志库,下面简单介绍一下zap的使用。 1.下载zap包 (推荐学习:go) 因为zap是uber开源的,zap内使用的包是在go.uber.org/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怎么使用的详细内容,更多请关注24课堂在线网其它相关文章!

本文来自网络,不代表24小时课堂在线立场,转载请注明出处:https://www.24ketang.cn/22494.html

为您推荐

返回顶部