}
optsLogger := loggers.Options{
- Distinct: true,
- Level: level,
- Stdout: r.Out,
- Stderr: r.Out,
- StoreErrors: running,
+ DistinctLevel: logg.LevelWarn,
+ Level: level,
+ Stdout: r.Out,
+ Stderr: r.Out,
+ StoreErrors: running,
}
return loggers.New(optsLogger), nil
Level logg.Level
Stdout io.Writer
Stderr io.Writer
- Distinct bool
+ DistinctLevel logg.Level
StoreErrors bool
HandlerPost func(e *logg.Entry) error
SuppressStatements map[string]bool
logHandler = multi.New(handlers...)
var logOnce *logOnceHandler
- if opts.Distinct {
- logOnce = newLogOnceHandler(logg.LevelWarn)
+ if opts.DistinctLevel != 0 {
+ logOnce = newLogOnceHandler(opts.DistinctLevel)
logHandler = newStopHandler(logOnce, logHandler)
}
// NewDefault creates a new logger with the default options.
func NewDefault() Logger {
opts := Options{
- Distinct: true,
- Level: logg.LevelWarn,
- Stdout: os.Stdout,
- Stderr: os.Stdout,
+ DistinctLevel: logg.LevelWarn,
+ Level: logg.LevelWarn,
+ Stdout: os.Stdout,
+ Stderr: os.Stdout,
}
return New(opts)
}
c := qt.New(t)
opts := loggers.Options{
- Distinct: true,
- StoreErrors: true,
- Stdout: io.Discard,
- Stderr: io.Discard,
+ DistinctLevel: logg.LevelWarn,
+ StoreErrors: true,
+ Stdout: io.Discard,
+ Stderr: io.Discard,
}
l := loggers.New(opts)
c.Assert(sb.String(), qt.Contains, "error 1")
c.Assert(sb.String(), qt.Contains, "ERROR")
-
}
func TestLogCount(t *testing.T) {
c.Assert(errorsStr, qt.Not(qt.Contains), "error 1")
c.Assert(errorsStr, qt.Contains, "error 2")
c.Assert(l.LoggCount(logg.LevelError), qt.Equals, 1)
-
}
func TestReset(t *testing.T) {
c := qt.New(t)
opts := loggers.Options{
- StoreErrors: true,
- Distinct: true,
- Stdout: io.Discard,
- Stderr: io.Discard,
+ StoreErrors: true,
+ DistinctLevel: logg.LevelWarn,
+ Stdout: io.Discard,
+ Stderr: io.Discard,
}
l := loggers.New(opts)
log = New(
Options{
- Level: level,
- Distinct: true,
- HandlerPost: logHookLast,
+ Level: level,
+ DistinctLevel: logg.LevelInfo,
+ HandlerPost: logHookLast,
},
)
}
logger := loggers.New(
loggers.Options{
- Stdout: w,
- Stderr: w,
- Level: s.Cfg.LogLevel,
- Distinct: true,
+ Stdout: w,
+ Stderr: w,
+ Level: s.Cfg.LogLevel,
+ DistinctLevel: logg.LevelWarn,
},
)
logOpts := loggers.Options{
Level: cfg.LogLevel,
- Distinct: true, // This will drop duplicate log warning and errors.
+ DistinctLevel: logg.LevelWarn, // This will drop duplicate log warning and errors.
HandlerPost: logHookLast,
Stdout: cfg.LogOut,
Stderr: cfg.LogOut,