This is a suggestion for the logger interface to be more clear and readable, also prevent developer mistakes.
Logger interface is now as below godoc:
type Logger interface {
Log(keyvals ...interface{}) error
}
so, we put our key values in order. It's not as clear as something like fmt.Printf method.
Isn't it better to use options to make logging more restrict and readable? something like it:
type Option func(Logger) error
type Logger interface {
Log(message string, options ...Option) error
}
func StringValue(key, value string) Option {
return func(l Logger) error {
return l.SetValue(key, value)
}
}
It's like implementation for Logger.Info method godoc in uber.zap
This is a suggestion for the logger interface to be more clear and readable, also prevent developer mistakes.
Logger interface is now as below godoc:
so, we put our key values in order. It's not as clear as something like
fmt.Printfmethod.Isn't it better to use options to make logging more restrict and readable? something like it:
It's like implementation for
Logger.Infomethod godoc in uber.zap