package oonimkall import ( "fmt" "github.com/ooni/probe-cli/v3/internal/engine/model" ) type loggerVerbose struct { Logger } func (slv loggerVerbose) Debugf(format string, v ...interface{}) { slv.Debug(fmt.Sprintf(format, v...)) } func (slv loggerVerbose) Infof(format string, v ...interface{}) { slv.Info(fmt.Sprintf(format, v...)) } func (slv loggerVerbose) Warnf(format string, v ...interface{}) { slv.Warn(fmt.Sprintf(format, v...)) } type loggerNormal struct { Logger } func (sln loggerNormal) Debugf(format string, v ...interface{}) { // nothing } func (sln loggerNormal) Debug(msg string) { // nothing } func (sln loggerNormal) Infof(format string, v ...interface{}) { sln.Info(fmt.Sprintf(format, v...)) } func (sln loggerNormal) Warnf(format string, v ...interface{}) { sln.Warn(fmt.Sprintf(format, v...)) } type loggerQuiet struct{} func (loggerQuiet) Debugf(format string, v ...interface{}) { // nothing } func (loggerQuiet) Debug(msg string) { // nothing } func (loggerQuiet) Infof(format string, v ...interface{}) { // nothing } func (loggerQuiet) Info(msg string) { // nothing } func (loggerQuiet) Warnf(format string, v ...interface{}) { // nothing } func (loggerQuiet) Warn(msg string) { // nothing } func newLogger(logger Logger, verbose bool) model.Logger { if logger == nil { return loggerQuiet{} } if verbose { return loggerVerbose{Logger: logger} } return loggerNormal{Logger: logger} }