package logger import ( "context" ) const ( defaultCallerSkipCount = 2 ) type noopLogger struct { opts Options } func NewLogger(opts ...Option) Logger { options := NewOptions(opts...) options.CallerSkipCount = defaultCallerSkipCount return &noopLogger{opts: options} } func (l *noopLogger) V(_ Level) bool { return false } func (l *noopLogger) Level(_ Level) { } func (l *noopLogger) Name() string { return l.opts.Name } func (l *noopLogger) Init(opts ...Option) error { for _, o := range opts { o(&l.opts) } return nil } func (l *noopLogger) Clone(opts ...Option) Logger { nl := &noopLogger{opts: l.opts} for _, o := range opts { o(&nl.opts) } return nl } func (l *noopLogger) Fields(_ ...interface{}) Logger { return l } func (l *noopLogger) Options() Options { return l.opts } func (l *noopLogger) String() string { return "noop" } func (l *noopLogger) Log(ctx context.Context, lvl Level, msg string, attrs ...interface{}) { } func (l *noopLogger) Info(ctx context.Context, msg string, attrs ...interface{}) { } func (l *noopLogger) Debug(ctx context.Context, msg string, attrs ...interface{}) { } func (l *noopLogger) Error(ctx context.Context, msg string, attrs ...interface{}) { } func (l *noopLogger) Trace(ctx context.Context, msg string, attrs ...interface{}) { } func (l *noopLogger) Warn(ctx context.Context, msg string, attrs ...interface{}) { } func (l *noopLogger) Fatal(ctx context.Context, msg string, attrs ...interface{}) { }