golang的zap怎么使用
Go  /  管理员 发布于 7年前   296
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怎么使用的详细内容,更多请关注其它相关文章!
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号