func (l *StdLogger) Error(msg string, fields ...Field) {
	log.Printf("%s %s", msg, l.buildContext("error", fields...))
}
Error implements Logger.Debug for stdlib "log" logger
package adapter
import (
	"fmt"
	"log"
	"strings"
	"sync"
)
const KeyError = "error"
type (
	Field struct {
		Key   string
		Value interface{}
	}
	Logger interface {
		Debug(msg string, fields ...Field)
		Info(msg string, fields ...Field)
		Error(msg string, fields ...Field)
		With(fields ...Field) Logger
	}
	NoOpLogger struct{}
	StdLogger struct {
		fields *sync.Map
		fLen   int
	}
)
func F(key string, value interface{}) Field {
	return Field{Key: key, Value: value}
}
func Err(err error) Field {
	return F(KeyError, err)
}
func (l NoOpLogger) Debug(msg string, fields ...Field) {}
func (l NoOpLogger) Info(msg string, fields ...Field) {}
func (l NoOpLogger) Error(msg string, fields ...Field) {}
func (l NoOpLogger) With(fields ...Field) Logger {
	return l
}
func NewStdLogger(fields ...Field) *StdLogger {
	f := new(sync.Map)
	for _, ff := range fields {
		f.Store(ff.Key, ff.Value)
	}
	return &StdLogger{f, len(fields)}
}
func (l *StdLogger) Debug(msg string, fields ...Field) {
	log.Printf("%s %s", msg, l.buildContext("debug", fields...))
}
func (l *StdLogger) Info(msg string, fields ...Field) {
	log.Printf("%s %s", msg, l.buildContext("info", fields...))
}