golangci-lint/test/testdata/loggercheck/loggercheck_custom.go
2022-09-06 23:23:32 +02:00

119 lines
3.2 KiB
Go

//golangcitest:args -Eloggercheck
//golangcitest:config_path configs/loggercheck_custom.yml
package loggercheck
import (
"errors"
"go.uber.org/zap"
)
var l = New()
type Logger struct {
s *zap.SugaredLogger
}
func New() *Logger {
logger := zap.NewExample().Sugar()
return &Logger{s: logger}
}
func (l *Logger) With(keysAndValues ...interface{}) *Logger {
return &Logger{
s: l.s.With(keysAndValues...),
}
}
func (l *Logger) Debugw(msg string, keysAndValues ...interface{}) {
l.s.Debugw(msg, keysAndValues...)
}
func (l *Logger) Infow(msg string, keysAndValues ...interface{}) {
l.s.Infow(msg, keysAndValues...)
}
func (l *Logger) Warnw(msg string, keysAndValues ...interface{}) {
l.s.Warnw(msg, keysAndValues...)
}
func (l *Logger) Errorw(msg string, keysAndValues ...interface{}) {
l.s.Errorw(msg, keysAndValues...)
}
func (l *Logger) Fatalw(msg string, keysAndValues ...interface{}) {
l.s.Fatalw(msg, keysAndValues...)
}
func (l *Logger) Sync() error {
return l.s.Sync()
}
// package level wrap func
func With(keysAndValues ...interface{}) *Logger {
return &Logger{
s: l.s.With(keysAndValues...),
}
}
func Debugw(msg string, keysAndValues ...interface{}) {
l.s.Debugw(msg, keysAndValues...)
}
func Infow(msg string, keysAndValues ...interface{}) {
l.s.Infow(msg, keysAndValues...)
}
func Warnw(msg string, keysAndValues ...interface{}) {
l.s.Warnw(msg, keysAndValues...)
}
func Errorw(msg string, keysAndValues ...interface{}) {
l.s.Errorw(msg, keysAndValues...)
}
func Fatalw(msg string, keysAndValues ...interface{}) {
l.s.Fatalw(msg, keysAndValues...)
}
func Sync() error {
return l.s.Sync()
}
func ExampleCustomLogger() {
err := errors.New("example error")
// custom SugaredLogger
log := New()
defer log.Sync()
log.Infow("abc", "key1", "value1")
log.Infow("abc", "key1", "value1", "key2") // want `odd number of arguments passed as key-value pairs for logging`
log.Errorw("message", "err", err, "key1", "value1")
log.Errorw("message", err, "key1", "value1", "key2", "value2") // want `odd number of arguments passed as key-value pairs for logging`
// with test
log.With("with_key1", "with_value1").Infow("message", "key1", "value1")
log.With("with_key1", "with_value1").Infow("message", "key1", "value1", "key2") // want `odd number of arguments passed as key-value pairs for logging`
log.With("with_key1").Infow("message", "key1", "value1") // want `odd number of arguments passed as key-value pairs for logging`
}
func ExampleCustomLoggerPackageLevelFunc() {
err := errors.New("example error")
defer Sync()
Infow("abc", "key1", "value1")
Infow("abc", "key1", "value1", "key2") // want `odd number of arguments passed as key-value pairs for logging`
Errorw("message", "err", err, "key1", "value1")
Errorw("message", err, "key1", "value1", "key2", "value2") // want `odd number of arguments passed as key-value pairs for logging`
// with test
With("with_key1", "with_value1").Infow("message", "key1", "value1")
With("with_key1", "with_value1").Infow("message", "key1", "value1", "key2") // want `odd number of arguments passed as key-value pairs for logging`
With("with_key1").Infow("message", "key1", "value1") // want `odd number of arguments passed as key-value pairs for logging`
}