1package hclog 2 3import ( 4 "io" 5 "io/ioutil" 6 "log" 7) 8 9// NewNullLogger instantiates a Logger for which all calls 10// will succeed without doing anything. 11// Useful for testing purposes. 12func NewNullLogger() Logger { 13 return &nullLogger{} 14} 15 16type nullLogger struct{} 17 18func (l *nullLogger) Log(level Level, msg string, args ...interface{}) {} 19 20func (l *nullLogger) Trace(msg string, args ...interface{}) {} 21 22func (l *nullLogger) Debug(msg string, args ...interface{}) {} 23 24func (l *nullLogger) Info(msg string, args ...interface{}) {} 25 26func (l *nullLogger) Warn(msg string, args ...interface{}) {} 27 28func (l *nullLogger) Error(msg string, args ...interface{}) {} 29 30func (l *nullLogger) IsTrace() bool { return false } 31 32func (l *nullLogger) IsDebug() bool { return false } 33 34func (l *nullLogger) IsInfo() bool { return false } 35 36func (l *nullLogger) IsWarn() bool { return false } 37 38func (l *nullLogger) IsError() bool { return false } 39 40func (l *nullLogger) ImpliedArgs() []interface{} { return []interface{}{} } 41 42func (l *nullLogger) With(args ...interface{}) Logger { return l } 43 44func (l *nullLogger) Name() string { return "" } 45 46func (l *nullLogger) Named(name string) Logger { return l } 47 48func (l *nullLogger) ResetNamed(name string) Logger { return l } 49 50func (l *nullLogger) SetLevel(level Level) {} 51 52func (l *nullLogger) StandardLogger(opts *StandardLoggerOptions) *log.Logger { 53 return log.New(l.StandardWriter(opts), "", log.LstdFlags) 54} 55 56func (l *nullLogger) StandardWriter(opts *StandardLoggerOptions) io.Writer { 57 return ioutil.Discard 58} 59