# Golang 封装zap实现自己的日志打印方式 **Published by:** [Robin](https://paragraph.com/@robin-8/) **Published on:** 2023-02-24 **URL:** https://paragraph.com/@robin-8/golang-zap ## Content package logs import ( "os" "go.uber.org/zap" "go.uber.org/zap/zapcore" ) var sugarLogger *zap.SugaredLogger func init() { initLogger() sugarLogger.Sync() } func initLogger() { encoder := getEncoder() core := zapcore.NewCore(encoder, zapcore.WriteSyncer(os.Stdout), zapcore.DebugLevel) logger := zap.New(core, zap.AddCaller(), zap.AddCallerSkip(1)) sugarLogger = logger.Sugar() } func getEncoder() zapcore.Encoder { encoderConfig := zap.NewProductionEncoderConfig() encoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder encoderConfig.EncodeLevel = zapcore.CapitalLevelEncoder return zapcore.NewConsoleEncoder(encoderConfig) } func ConsoleDebug(format string, v ...interface{}) { sugarLogger.Debugf(format, v...) } func ConsoleInfo(format string, v ...interface{}) { sugarLogger.Infof(format, v...) } func ConsoleError(format string, v ...interface{}) { sugarLogger.Errorf(format, v...) } func ConsoleWarn(format string, v ...interface{}) { sugarLogger.Warnf(format, v...) } func ConsoleFatal(format string, v ...interface{}) { sugarLogger.Fatalf(format, v...) } func ConsolePanic(format string, v ...interface{}) { sugarLogger.Panicf(format, v...) } ## Publication Information - [Robin](https://paragraph.com/@robin-8/): Publication homepage - [All Posts](https://paragraph.com/@robin-8/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@robin-8): Subscribe to updates