package logger import ( "github.com/sirupsen/logrus" "metawant.greentech.com.cn/gaoyagang/gt-common/mail" ) type GtLogger struct { *logrus.Entry AppName string Mode string } func CreateGtLogger(name, mode string) *GtLogger { log := logrus.New() customFormatter := &logrus.TextFormatter{ TimestampFormat: "2006-01-02 15:04:05", } log.SetFormatter(customFormatter) logEntry := log.WithFields(logrus.Fields{ "app_name": name, }) gtLogger := &GtLogger{Entry: logEntry, AppName: name, Mode: mode} return gtLogger } func (logger *GtLogger) ErrorAndSendMail(err error) { logger.Error(err) if logger.Mode == "dev" { return } mailClient := mail.CreateDefaultMailApiClient(logger.AppName, logger.Mode) go func() { defer func() { if r := recover(); r != nil { logger.Error("ErrorAndSendMail Recovered Error:", r) } }() mailErr := mailClient.SendErrorWarning(err) if mailErr != nil { logger.Error("ErrorAndSendMail SendErrorWarning Error:", mailErr.Error()) } }() }