79 lines
2.4 KiB
Go
79 lines
2.4 KiB
Go
|
package logger
|
||
|
|
||
|
import (
|
||
|
"go.uber.org/zap"
|
||
|
"go.uber.org/zap/zapcore"
|
||
|
"google.golang.org/grpc/grpclog"
|
||
|
)
|
||
|
|
||
|
type (
|
||
|
zapLogger struct {
|
||
|
zapcore.Core
|
||
|
log *zap.SugaredLogger
|
||
|
}
|
||
|
|
||
|
// Logger includes grpclog.LoggerV2 interface with an additional
|
||
|
// Println method.
|
||
|
Logger interface {
|
||
|
grpclog.LoggerV2
|
||
|
Println(v ...interface{})
|
||
|
}
|
||
|
)
|
||
|
|
||
|
// GRPC wraps given zap.Logger into grpclog.LoggerV2+ interface.
|
||
|
func GRPC(l *zap.Logger) Logger {
|
||
|
log := l.WithOptions(
|
||
|
// skip gRPCLog + zapLogger in caller
|
||
|
zap.AddCallerSkip(2))
|
||
|
|
||
|
return &zapLogger{
|
||
|
Core: log.Core(),
|
||
|
log: log.Sugar(),
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Info implements grpclog.LoggerV2.
|
||
|
func (z *zapLogger) Info(args ...interface{}) { z.log.Info(args...) }
|
||
|
|
||
|
// Infoln implements grpclog.LoggerV2.
|
||
|
func (z *zapLogger) Infoln(args ...interface{}) { z.log.Info(args...) }
|
||
|
|
||
|
// Infof implements grpclog.LoggerV2.
|
||
|
func (z *zapLogger) Infof(format string, args ...interface{}) { z.log.Infof(format, args...) }
|
||
|
|
||
|
// Println allows to print a line with info severity.
|
||
|
func (z *zapLogger) Println(args ...interface{}) { z.log.Info(args...) }
|
||
|
|
||
|
// Printf implements grpclog.LoggerV2.
|
||
|
func (z *zapLogger) Printf(format string, args ...interface{}) { z.log.Infof(format, args...) }
|
||
|
|
||
|
// Warning implements grpclog.LoggerV2.
|
||
|
func (z *zapLogger) Warning(args ...interface{}) { z.log.Warn(args...) }
|
||
|
|
||
|
// Warningln implements grpclog.LoggerV2.
|
||
|
func (z *zapLogger) Warningln(args ...interface{}) { z.log.Warn(args...) }
|
||
|
|
||
|
// Warningf implements grpclog.LoggerV2.
|
||
|
func (z *zapLogger) Warningf(format string, args ...interface{}) { z.log.Warnf(format, args...) }
|
||
|
|
||
|
// Error implements grpclog.LoggerV2.
|
||
|
func (z *zapLogger) Error(args ...interface{}) { z.log.Error(args...) }
|
||
|
|
||
|
// Errorln implements grpclog.LoggerV2.
|
||
|
func (z *zapLogger) Errorln(args ...interface{}) { z.log.Error(args...) }
|
||
|
|
||
|
// Errorf implements grpclog.LoggerV2.
|
||
|
func (z *zapLogger) Errorf(format string, args ...interface{}) { z.log.Errorf(format, args...) }
|
||
|
|
||
|
// Fatal implements grpclog.LoggerV2.
|
||
|
func (z *zapLogger) Fatal(args ...interface{}) { z.log.Fatal(args...) }
|
||
|
|
||
|
// Fatalln implements grpclog.LoggerV2.
|
||
|
func (z *zapLogger) Fatalln(args ...interface{}) { z.log.Fatal(args...) }
|
||
|
|
||
|
// Fatalf implements grpclog.LoggerV2.
|
||
|
func (z *zapLogger) Fatalf(format string, args ...interface{}) { z.log.Fatalf(format, args...) }
|
||
|
|
||
|
// V implements grpclog.LoggerV2.
|
||
|
func (z *zapLogger) V(int) bool { return z.Enabled(zapcore.DebugLevel) }
|