logger.go raw

   1  package linodego
   2  
   3  import (
   4  	"log"
   5  	"os"
   6  )
   7  
   8  //nolint:unused
   9  type httpLogger interface {
  10  	Errorf(format string, v ...any)
  11  	Warnf(format string, v ...any)
  12  	Debugf(format string, v ...any)
  13  }
  14  
  15  //nolint:unused
  16  type logger struct {
  17  	l *log.Logger
  18  }
  19  
  20  //nolint:unused
  21  func createLogger() *logger {
  22  	l := &logger{l: log.New(os.Stderr, "", log.Ldate|log.Lmicroseconds)}
  23  	return l
  24  }
  25  
  26  //nolint:unused
  27  var _ httpLogger = (*logger)(nil)
  28  
  29  //nolint:unused
  30  func (l *logger) Errorf(format string, v ...any) {
  31  	l.output("ERROR RESTY "+format, v...)
  32  }
  33  
  34  //nolint:unused
  35  func (l *logger) Warnf(format string, v ...any) {
  36  	l.output("WARN RESTY "+format, v...)
  37  }
  38  
  39  //nolint:unused
  40  func (l *logger) Debugf(format string, v ...any) {
  41  	l.output("DEBUG RESTY "+format, v...)
  42  }
  43  
  44  //nolint:unused
  45  func (l *logger) output(format string, v ...any) { //nolint:goprintffuncname
  46  	if len(v) == 0 {
  47  		l.l.Print(format)
  48  		return
  49  	}
  50  
  51  	l.l.Printf(format, v...)
  52  }
  53