package logging import ( "bytes" "fmt" "github.com/sirupsen/logrus" "os" "path/filepath" ) var Logger = logrus.New() type MyFormatter struct{} func (m *MyFormatter) Format(entry *logrus.Entry) ([]byte, error) { var b *bytes.Buffer if entry.Buffer != nil { b = entry.Buffer } else { b = &bytes.Buffer{} } timestamp := entry.Time.Format("2006-01-02 15:04:05") var newLog string //HasCaller()为true才会有调用信息 if entry.HasCaller() { fName := filepath.Base(entry.Caller.File) newLog = fmt.Sprintf("[%s] [%s] [%s:%d %s] %s\n", timestamp, entry.Level, fName, entry.Caller.Line, entry.Caller.Function, entry.Message) } else { newLog = fmt.Sprintf("[%s] [%s] %s\n", timestamp, entry.Level, entry.Message) } b.WriteString(newLog) return b.Bytes(), nil } func Setup() { Logger.SetReportCaller(true) Logger.SetFormatter(&MyFormatter{}) Logger.SetOutput(os.Stdout) Logger.SetLevel(logrus.InfoLevel) }