logger.go 1009 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package logger
  2. import (
  3. "github.com/sirupsen/logrus"
  4. "metawant.greentech.com.cn/gaoyagang/gt-common/mail"
  5. )
  6. type GtLogger struct {
  7. *logrus.Entry
  8. AppName string
  9. Mode string
  10. }
  11. func CreateGtLogger(name, mode string) *GtLogger {
  12. log := logrus.New()
  13. customFormatter := &logrus.TextFormatter{
  14. TimestampFormat: "2006-01-02 15:04:05",
  15. }
  16. log.SetFormatter(customFormatter)
  17. logEntry := log.WithFields(logrus.Fields{
  18. "app_name": name,
  19. })
  20. gtLogger := &GtLogger{Entry: logEntry, AppName: name, Mode: mode}
  21. return gtLogger
  22. }
  23. func (logger *GtLogger) ErrorAndSendMail(err error) {
  24. logger.Error(err)
  25. if logger.Mode == "dev" {
  26. return
  27. }
  28. mailClient := mail.CreateDefaultMailApiClient(logger.AppName, logger.Mode)
  29. go func() {
  30. defer func() {
  31. if r := recover(); r != nil {
  32. logger.Error("ErrorAndSendMail Recovered Error:", r)
  33. }
  34. }()
  35. mailErr := mailClient.SendErrorWarning(err)
  36. if mailErr != nil {
  37. logger.Error("ErrorAndSendMail SendErrorWarning Error:", mailErr.Error())
  38. }
  39. }()
  40. }