1package log23import (4 "go.uber.org/zap/zapcore"5)67// TODO: Migrate to using actual zapcore to improve logging performance89type zapLogger struct {10 L Logger11}1213func (l zapLogger) Enabled(level zapcore.Level) bool {14 if l.L.Debug {15 return true16 }17 return level > zapcore.DebugLevel18}1920func (l zapLogger) With(fields []zapcore.Field) zapcore.Core {21 enc := zapcore.NewMapObjectEncoder()22 for _, f := range fields {23 f.AddTo(enc)24 }25 newF := make(map[string]interface{}, len(l.L.Fields)+len(enc.Fields))26 for k, v := range l.L.Fields {27 newF[k] = v28 }29 for k, v := range enc.Fields {30 newF[k] = v31 }32 l.L.Fields = newF33 return l34}3536func (l zapLogger) Check(entry zapcore.Entry, ce *zapcore.CheckedEntry) *zapcore.CheckedEntry {37 if l.Enabled(entry.Level) {38 return ce.AddCore(entry, l)39 }40 return ce41}4243func (l zapLogger) Write(entry zapcore.Entry, fields []zapcore.Field) error {44 enc := zapcore.NewMapObjectEncoder()45 for _, f := range fields {46 f.AddTo(enc)47 }48 if entry.LoggerName != "" {49 l.L.Name += "/" + entry.LoggerName50 }51 l.L.log(entry.Level == zapcore.DebugLevel, l.L.formatMsg(entry.Message, enc.Fields))52 return nil53}5455func (zapLogger) Sync() error {56 return nil57}