配置
1 2 3 4 5 6 7
| log: level: -1 filename: ./log/grpc.log max-size: 1 max-backups: 5 max-age: 7 compress: false
|
初始化
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| func GetLog(cfg *configs.Config) *zap.SugaredLogger {
writeSyncer := getLogWriter(cfg)
encoder := getEncoder()
core := zapcore.NewCore(encoder, writeSyncer, zapcore.Level(cfg.Log.Level))
logger := zap.New(core, zap.AddCaller())
return logger.Sugar() }
func getEncoder() zapcore.Encoder {
encoderConfig := zap.NewProductionEncoderConfig()
encoderConfig.EncodeTime = zapcore.TimeEncoderOfLayout("2006-01-02 15:04:05")
encoderConfig.EncodeLevel = zapcore.CapitalLevelEncoder
return zapcore.NewConsoleEncoder(encoderConfig) }
func getLogWriter(cfg *configs.Config) zapcore.WriteSyncer {
lumberJackLogger := &lumberjack.Logger{ Filename: cfg.Log.Filename, MaxSize: cfg.Log.MaxSize, MaxBackups: cfg.Log.MaxBackups, MaxAge: cfg.Log.MaxAge, Compress: cfg.Log.Compress, }
return zapcore.AddSync(lumberJackLogger) }
|
使用
全局保存 *zap.SugaredLogger,后使用