1package oonimkall 2 3import ( 4 "fmt" 5 6 "github.com/ooni/probe-cli/v3/internal/engine/model" 7) 8 9type loggerVerbose struct { 10 Logger 11} 12 13func (slv loggerVerbose) Debugf(format string, v ...interface{}) { 14 slv.Debug(fmt.Sprintf(format, v...)) 15} 16func (slv loggerVerbose) Infof(format string, v ...interface{}) { 17 slv.Info(fmt.Sprintf(format, v...)) 18} 19func (slv loggerVerbose) Warnf(format string, v ...interface{}) { 20 slv.Warn(fmt.Sprintf(format, v...)) 21} 22 23type loggerNormal struct { 24 Logger 25} 26 27func (sln loggerNormal) Debugf(format string, v ...interface{}) { 28 // nothing 29} 30func (sln loggerNormal) Debug(msg string) { 31 // nothing 32} 33func (sln loggerNormal) Infof(format string, v ...interface{}) { 34 sln.Info(fmt.Sprintf(format, v...)) 35} 36func (sln loggerNormal) Warnf(format string, v ...interface{}) { 37 sln.Warn(fmt.Sprintf(format, v...)) 38} 39 40type loggerQuiet struct{} 41 42func (loggerQuiet) Debugf(format string, v ...interface{}) { 43 // nothing 44} 45func (loggerQuiet) Debug(msg string) { 46 // nothing 47} 48func (loggerQuiet) Infof(format string, v ...interface{}) { 49 // nothing 50} 51func (loggerQuiet) Info(msg string) { 52 // nothing 53} 54func (loggerQuiet) Warnf(format string, v ...interface{}) { 55 // nothing 56} 57func (loggerQuiet) Warn(msg string) { 58 // nothing 59} 60 61func newLogger(logger Logger, verbose bool) model.Logger { 62 if logger == nil { 63 return loggerQuiet{} 64 } 65 if verbose { 66 return loggerVerbose{Logger: logger} 67 } 68 return loggerNormal{Logger: logger} 69} 70