From 518e665d1745a00d178d37026fa6867b3947b5c9 Mon Sep 17 00:00:00 2001 From: neverteaser Date: Thu, 18 Mar 2021 23:31:47 +0800 Subject: [PATCH] fix(be):log format --- pkg/middleware/logger.go | 71 ++++++++++++++++++---------------------- 1 file changed, 32 insertions(+), 39 deletions(-) diff --git a/pkg/middleware/logger.go b/pkg/middleware/logger.go index ec4a985..1f9256f 100644 --- a/pkg/middleware/logger.go +++ b/pkg/middleware/logger.go @@ -4,13 +4,22 @@ import ( "fmt" "os" "path" + "strconv" "time" "github.com/labstack/echo/v4" - "github.com/sirupsen/logrus" + log "github.com/sirupsen/logrus" ) -func Logger() *logrus.Logger { +type NTLog struct { + *log.Logger +} + +func (l *NTLog) Level() { + +} + +func Logger() *log.Logger { now := time.Now() logFilePath := "" if dir, err := os.Getwd(); err == nil { @@ -19,6 +28,7 @@ func Logger() *logrus.Logger { if err := os.MkdirAll(logFilePath, 0755); err != nil { fmt.Println(err.Error()) } + // TODO 滚动日志 logFileName := now.Format("2006-01-02") + ".log" //日志文件 fileName := path.Join(logFilePath, logFileName) @@ -34,17 +44,16 @@ func Logger() *logrus.Logger { } //实例化 - logger := logrus.New() + logger := log.New() //设置输出 logger.Out = src logger.SetOutput(os.Stdout) //设置日志级别 - logger.SetLevel(logrus.DebugLevel) - //logger.Out := fmt. + logger.SetLevel(log.DebugLevel) //设置日志格式 - logger.SetFormatter(&logrus.TextFormatter{ + logger.SetFormatter(&log.TextFormatter{ TimestampFormat: "2006-01-02 15:04:05", }) return logger @@ -54,43 +63,27 @@ func LoggerToFile() echo.MiddlewareFunc { logger := Logger() return func(next echo.HandlerFunc) echo.HandlerFunc { return func(c echo.Context) (err error) { + req := c.Request() + res := c.Response() + start := time.Now() if err = next(c); err != nil { c.Error(err) } - req := c.Request() - resp := c.Response() - startTime := time.Now() - - // 处理请求 - - // 结束时间 - endTime := time.Now() - - // 执行时间 - latencyTime := endTime.Sub(startTime) - - // 请求方式 - reqMethod := req.Method - - // 请求路由 - reqUri := req.URL - - // 状态码 - statusCode := resp.Status - - // 请求IP - clientIP := req.RemoteAddr - //logger.Formatter - // TODO log Formatter - //日志格式 - logger.Infof("| %3d | %13v | %15s | %s | %s |", - statusCode, - latencyTime, - clientIP, - reqMethod, - reqUri, + stop := time.Now() + logger.Infof("%s [%v] %s %-7s %s %3d %s %13v %s %s", + c.RealIP(), + stop.Format(time.RFC3339), + req.Host, + req.Method, + req.RequestURI, + res.Status, + strconv.FormatInt(res.Size, 10), + stop.Sub(start).String(), + req.Referer(), + req.UserAgent(), ) - return + return err + } }