2023-12-30 17:40:20 +08:00
|
|
|
package logging
|
|
|
|
|
|
|
|
|
|
import (
|
2024-01-01 12:03:56 +08:00
|
|
|
"bytes"
|
|
|
|
|
"fmt"
|
2023-12-30 17:40:20 +08:00
|
|
|
"github.com/sirupsen/logrus"
|
|
|
|
|
"os"
|
2024-01-01 12:03:56 +08:00
|
|
|
"path/filepath"
|
2023-12-30 17:40:20 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
var Logger = logrus.New()
|
|
|
|
|
|
2024-01-01 12:03:56 +08:00
|
|
|
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
|
|
|
|
|
}
|
|
|
|
|
|
2023-12-30 17:40:20 +08:00
|
|
|
func Setup() {
|
2024-01-01 12:03:56 +08:00
|
|
|
Logger.SetReportCaller(true)
|
|
|
|
|
Logger.SetFormatter(&MyFormatter{})
|
2023-12-30 17:40:20 +08:00
|
|
|
Logger.SetOutput(os.Stdout)
|
|
|
|
|
Logger.SetLevel(logrus.InfoLevel)
|
|
|
|
|
}
|