mirror of
https://github.com/WJQSERVER-STUDIO/ghproxy.git
synced 2026-02-03 00:01:10 +08:00
37 lines
1.3 KiB
Go
37 lines
1.3 KiB
Go
package loggin
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
"github.com/WJQSERVER-STUDIO/go-utils/logger"
|
|
"github.com/cloudwego/hertz/pkg/app"
|
|
)
|
|
|
|
var (
|
|
logw = logger.Logw
|
|
logDump = logger.LogDump
|
|
logDebug = logger.LogDebug
|
|
logInfo = logger.LogInfo
|
|
logWarning = logger.LogWarning
|
|
logError = logger.LogError
|
|
)
|
|
|
|
// 日志中间件
|
|
func Middleware() app.HandlerFunc {
|
|
return func(ctx context.Context, c *app.RequestContext) {
|
|
startTime := time.Now() // 请求开始处理前记录当前时间作为开始时间
|
|
|
|
c.Next(ctx) // 调用 Next() 执行后续的 Handler
|
|
|
|
endTime := time.Now() // 请求处理完成后记录当前时间作为结束时间
|
|
timingResults := endTime.Sub(startTime) // 计算时间差,得到请求处理耗时 (Duration 类型)
|
|
|
|
// 记录日志 IP METHOD URL USERAGENT PROTOCOL STATUS TIMING
|
|
// %s %s %s %s %s %d %s 分别对应: ClientIP, Method, Protolcol, Path, UserAgent, StatusCode, timingResults (需要格式化)
|
|
// %v 可以通用地格式化 time.Duration 类型
|
|
logInfo("%s %s %s %s %s %d %v ", c.ClientIP(), c.Method(), c.Request.Header.GetProtocol(), string(c.Path()), c.Request.Header.UserAgent(), c.Response.StatusCode(), timingResults)
|
|
|
|
//logInfo("%s %s %s %s %d %v ", c.ClientIP(), c.Method(), c.Path(), c.Request.Header.UserAgent(), c.Response.StatusCode(), timingResults)
|
|
}
|
|
}
|