func (u LogTextFormatter) Format(e *logrus.Entry) ([]byte, error) { level := strings.ToUpper(e.Level.String()) message := e.Message parts := strings.SplitN(message, " +0000]", 2) if len(parts) >= 2 { message = parts[1] } var color string switch e.Level { case logrus.DebugLevel: color = "\033[36m" // cyan case logrus.InfoLevel: color = "\033[37m" // grey case logrus.WarnLevel: color = "\033[33m" // yellow case logrus.ErrorLevel, logrus.FatalLevel, logrus.PanicLevel: color = "\033[31m" // red default: color = "\033[0m" // reset } if e.Caller != nil { file := filepath.Base(e.Caller.File) line := e.Caller.Line return []byte(fmt.Sprintf("%s[%s] %s:%d %s%s\033[0m\n", color, level, file, line, message, color)), nil } return []byte(fmt.Sprintf("%s[%s] %s%s\033[0m\n", color, level, message, color)), nil }