nulllogger.go 1.3 KB

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