From 116d5b13f869a42f87c2128c9b20af3deb4ea3c0 Mon Sep 17 00:00:00 2001 From: loveuer Date: Wed, 17 Jul 2024 21:31:51 +0800 Subject: [PATCH] update: trace --- internal/cmd/execute.go | 2 +- internal/controller/impl.go | 4 +++- internal/log/log.go | 2 +- internal/middleware/logger/logger.go | 23 +++++++++-------------- internal/opt/var.go | 3 +-- 5 files changed, 15 insertions(+), 19 deletions(-) diff --git a/internal/cmd/execute.go b/internal/cmd/execute.go index 028cf2f..ebd6dc9 100644 --- a/internal/cmd/execute.go +++ b/internal/cmd/execute.go @@ -28,7 +28,7 @@ func Execute(ctx context.Context) error { // tool.Must(nebula.Init(ctx, opt.Cfg.Nebula)) tool.Must(model.Init(db.New())) - tool.Must(controller.Init()) + tool.Must(controller.Init(ctx)) tool.Must(api.Start(ctx)) <-ctx.Done() diff --git a/internal/controller/impl.go b/internal/controller/impl.go index bc483f9..e113cd0 100644 --- a/internal/controller/impl.go +++ b/internal/controller/impl.go @@ -1,11 +1,13 @@ package controller +import "context" + var ( // UserController todo: 可以实现自己的 controller UserController userController ) -func Init() error { +func Init(ctx context.Context) error { UserController = uc{} return nil diff --git a/internal/log/log.go b/internal/log/log.go index 0720f52..1e39a61 100644 --- a/internal/log/log.go +++ b/internal/log/log.go @@ -12,7 +12,7 @@ func _mix(c *nf.Ctx, msg string) string { return msg } - return fmt.Sprintf("%v | %s", c.Locals(opt.LocalShortTraceKey), msg) + return fmt.Sprintf("%v | %s", c.Locals(opt.LocalTraceKey), msg) } func Debug(c *nf.Ctx, msg string, data ...any) { diff --git a/internal/middleware/logger/logger.go b/internal/middleware/logger/logger.go index 3e3ff75..bb4b6a0 100644 --- a/internal/middleware/logger/logger.go +++ b/internal/middleware/logger/logger.go @@ -8,7 +8,6 @@ import ( "github.com/loveuer/nf/nft/resp" "net/http" "strconv" - "strings" "time" "ultone/internal/opt" "ultone/internal/tool" @@ -22,29 +21,25 @@ func New() nf.HandlerFunc { return func(c *nf.Ctx) error { var ( - now = time.Now() - trace = c.Get(Header) - logFn func(msg string, data ...any) - ip = c.IP() + now = time.Now() + traceId = c.Get(Header) + logFn func(msg string, data ...any) + ip = c.IP() ) - if trace == "" { - trace = uuid.Must(uuid.NewV7()).String() + if traceId == "" { + traceId = uuid.Must(uuid.NewV7()).String() } - c.SetHeader(Header, trace) + c.SetHeader(Header, traceId) - traces := strings.Split(trace, "-") - shortTrace := traces[len(traces)-1] - - c.Locals(opt.LocalTraceKey, trace) - c.Locals(opt.LocalShortTraceKey, shortTrace) + c.Locals(opt.LocalTraceKey, traceId) err := c.Next() status, _ := strconv.Atoi(c.Writer.Header().Get(resp.RealStatusHeader)) duration := time.Since(now) - msg := fmt.Sprintf("%s | %15s | %d[%3d] | %s | %6s | %s", shortTrace, ip, c.StatusCode, status, tool.HumanDuration(duration.Nanoseconds()), c.Method(), c.Path()) + msg := fmt.Sprintf("%s | %15s | %d[%3d] | %s | %6s | %s", traceId, ip, c.StatusCode, status, tool.HumanDuration(duration.Nanoseconds()), c.Method(), c.Path()) switch { case status >= 500: diff --git a/internal/opt/var.go b/internal/opt/var.go index e08e2b0..cadb83d 100644 --- a/internal/opt/var.go +++ b/internal/opt/var.go @@ -36,8 +36,7 @@ const ( // todo: 操作日志 最多延迟多少秒写入(最多缓存多少秒的日志,然后 bulk 写入) OpLogWriteDurationSecond = 5 - LocalTraceKey = "X-Trace" - LocalShortTraceKey = "X-Short-Trace" + LocalTraceKey = "X-Trace" ) var (