nulllogger.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package hclog
  2. import (
  3. "log"
  4. "io/ioutil"
  5. )
  6. // NewNullLogger instantiates a Logger for which all calls
  7. // will succeed without doing anything.
  8. // Useful for testing purposes.
  9. func NewNullLogger() Logger {
  10. return &nullLogger{}
  11. }
  12. type nullLogger struct{}
  13. func (l *nullLogger) Trace(msg string, args ...interface{}) {}
  14. func (l *nullLogger) Debug(msg string, args ...interface{}) {}
  15. func (l *nullLogger) Info(msg string, args ...interface{}) {}
  16. func (l *nullLogger) Warn(msg string, args ...interface{}) {}
  17. func (l *nullLogger) Error(msg string, args ...interface{}) {}
  18. func (l *nullLogger) IsTrace() bool { return false }
  19. func (l *nullLogger) IsDebug() bool { return false }
  20. func (l *nullLogger) IsInfo() bool { return false }
  21. func (l *nullLogger) IsWarn() bool { return false }
  22. func (l *nullLogger) IsError() bool { return false }
  23. func (l *nullLogger) With(args ...interface{}) Logger { return l }
  24. func (l *nullLogger) Named(name string) Logger { return l }
  25. func (l *nullLogger) ResetNamed(name string) Logger { return l }
  26. func (l *nullLogger) StandardLogger(opts *StandardLoggerOptions) *log.Logger {
  27. return log.New(ioutil.Discard, "", log.LstdFlags)
  28. }