logger.go 898 B

12345678910111213141516171819202122232425262728293031323334353637
  1. package tapdance
  2. import (
  3. "fmt"
  4. "sync"
  5. "github.com/sirupsen/logrus"
  6. )
  7. // implements interface logrus.Formatter
  8. type formatter struct {
  9. }
  10. func (f *formatter) Format(entry *logrus.Entry) ([]byte, error) {
  11. return []byte(fmt.Sprintf("[%s] %s\n", entry.Time.Format("15:04:05"), entry.Message)), nil
  12. }
  13. var logrusLogger *logrus.Logger
  14. var initLoggerOnce sync.Once
  15. // Logger is an access point for TapDance-wide logger
  16. func Logger() *logrus.Logger {
  17. initLoggerOnce.Do(func() {
  18. logrusLogger = logrus.New()
  19. logrusLogger.Formatter = new(formatter)
  20. // logrusLogger.Level = logrus.InfoLevel
  21. logrusLogger.Level = logrus.DebugLevel
  22. // buildInfo const will be overwritten by CI with `sed` for test builds
  23. // if not overwritten -- this is a NO-OP
  24. const buildInfo = ""
  25. if len(buildInfo) > 0 {
  26. logrusLogger.Infof("Running gotapdance build %s", buildInfo)
  27. }
  28. })
  29. return logrusLogger
  30. }