logger.go 591 B

123456789101112131415161718192021222324252627282930
  1. package logger
  2. import (
  3. "sync"
  4. log_prefixed "github.com/chappjc/logrus-prefix"
  5. "github.com/sirupsen/logrus"
  6. )
  7. var (
  8. globalLogger *logrus.Logger
  9. getLoggerMutex sync.Mutex
  10. )
  11. // GetLogger returns a configured logger instance
  12. func GetLogger(prefix string) *logrus.Entry {
  13. if prefix == "" {
  14. prefix = "<no prefix>"
  15. }
  16. if globalLogger == nil {
  17. getLoggerMutex.Lock()
  18. defer getLoggerMutex.Unlock()
  19. logger := logrus.New()
  20. logger.SetFormatter(&log_prefixed.TextFormatter{
  21. FullTimestamp: true,
  22. })
  23. globalLogger = logger
  24. }
  25. return globalLogger.WithField("prefix", prefix)
  26. }