Skip to content

Commit

Permalink
Extract LevelEnabler into a field to avoid memory allocation
Browse files Browse the repository at this point in the history
  • Loading branch information
ash2k committed Feb 9, 2021
1 parent 2a0779f commit bb6d5a3
Showing 1 changed file with 10 additions and 8 deletions.
18 changes: 10 additions & 8 deletions zapgrpc/zapgrpc.go
Expand Up @@ -72,6 +72,7 @@ func WithDebug() Option {
func NewLogger(l *zap.Logger, options ...Option) *Logger {
logger := &Logger{
delegate: l.Sugar(),
levelEnabler: l.Core(),
printToDebug: false,
fatalToWarn: false,
}
Expand All @@ -84,6 +85,7 @@ func NewLogger(l *zap.Logger, options ...Option) *Logger {
// Logger adapts zap's Logger to be compatible with grpclog.LoggerV2 and the deprecated grpclog.Logger.
type Logger struct {
delegate *zap.SugaredLogger
levelEnabler zapcore.LevelEnabler
printToDebug bool
fatalToWarn bool
}
Expand Down Expand Up @@ -112,11 +114,11 @@ func (l *Logger) Printf(format string, args ...interface{}) {
// Deprecated: use Info().
func (l *Logger) Println(args ...interface{}) {
if l.printToDebug {
if l.delegate.Desugar().Core().Enabled(zapcore.DebugLevel) {
if l.levelEnabler.Enabled(zapcore.DebugLevel) {
l.delegate.Debug(sprintln(args))
}
} else {
if l.delegate.Desugar().Core().Enabled(zapcore.InfoLevel) {
if l.levelEnabler.Enabled(zapcore.InfoLevel) {
l.delegate.Info(sprintln(args))
}
}
Expand All @@ -129,7 +131,7 @@ func (l *Logger) Info(args ...interface{}) {

// Infoln implements grpclog.LoggerV2.
func (l *Logger) Infoln(args ...interface{}) {
if l.delegate.Desugar().Core().Enabled(zapcore.InfoLevel) {
if l.levelEnabler.Enabled(zapcore.InfoLevel) {
l.delegate.Info(sprintln(args))
}
}
Expand All @@ -146,7 +148,7 @@ func (l *Logger) Warning(args ...interface{}) {

// Warningln implements grpclog.LoggerV2.
func (l *Logger) Warningln(args ...interface{}) {
if l.delegate.Desugar().Core().Enabled(zapcore.WarnLevel) {
if l.levelEnabler.Enabled(zapcore.WarnLevel) {
l.delegate.Warn(sprintln(args))
}
}
Expand All @@ -163,7 +165,7 @@ func (l *Logger) Error(args ...interface{}) {

// Errorln implements grpclog.LoggerV2.
func (l *Logger) Errorln(args ...interface{}) {
if l.delegate.Desugar().Core().Enabled(zapcore.ErrorLevel) {
if l.levelEnabler.Enabled(zapcore.ErrorLevel) {
l.delegate.Error(sprintln(args))
}
}
Expand All @@ -185,11 +187,11 @@ func (l *Logger) Fatal(args ...interface{}) {
// Fatalln implements grpclog.LoggerV2.
func (l *Logger) Fatalln(args ...interface{}) {
if l.fatalToWarn {
if l.delegate.Desugar().Core().Enabled(zapcore.WarnLevel) {
if l.levelEnabler.Enabled(zapcore.WarnLevel) {
l.delegate.Warn(sprintln(args))
}
} else {
if l.delegate.Desugar().Core().Enabled(zapcore.FatalLevel) {
if l.levelEnabler.Enabled(zapcore.FatalLevel) {
l.delegate.Fatal(sprintln(args))
}
}
Expand All @@ -206,7 +208,7 @@ func (l *Logger) Fatalf(format string, args ...interface{}) {

// V implements grpclog.LoggerV2.
func (l *Logger) V(level int) bool {
return l.delegate.Desugar().Core().Enabled(_grpcToZapLevel[level])
return l.levelEnabler.Enabled(_grpcToZapLevel[level])
}

func sprintln(args []interface{}) string {
Expand Down

0 comments on commit bb6d5a3

Please sign in to comment.