zap ist eine leistungsstarke Protokollbibliothek. Im Folgenden finden Sie eine kurze Einführung in die Verwendung von zap.
1. Laden Sie das Zap-Paket herunter Das verwendete Paket finden Sie unter go.uber.org/zap. Wenn Sie dieses Paket direkt herunterladen, werden Sie möglicherweise darauf hingewiesen, dass dies nicht möglich ist erhalten werden.
Sie können sich github.com/uber-go/zap holen und dann das Zap-Verzeichnis nach src/go.uber.org kopieren (möglicherweise benötigen Sie auch go.uber.org/atomic und go.uber.org/multierr, Sie können auf diese Methode verweisen, um es zu erhalten)2.zap einfaches Kapselungsbeispiel.
package logger import ( "go.uber.org/zap" "go.uber.org/zap/zapcore" "gopkg.in/natefinch/lumberjack.v2" ) // error logger var 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, //1G LocalTime: true, Compress: true, }) encoder := zap.NewProductionEncoderConfig() encoder.EncodeTime = zapcore.ISO8601TimeEncoder core := 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...) }
Verwendungsbeispiel nach einfacher Kapselung:
package main import ( "logger" ) func main() { logger.Infof("simple zap logger example") }
Das obige ist der detaillierte Inhalt vonSo verwenden Sie Golangs Zap. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!