update: trace
This commit is contained in:
parent
ec869aec2b
commit
116d5b13f8
@ -28,7 +28,7 @@ func Execute(ctx context.Context) error {
|
|||||||
// tool.Must(nebula.Init(ctx, opt.Cfg.Nebula))
|
// tool.Must(nebula.Init(ctx, opt.Cfg.Nebula))
|
||||||
|
|
||||||
tool.Must(model.Init(db.New()))
|
tool.Must(model.Init(db.New()))
|
||||||
tool.Must(controller.Init())
|
tool.Must(controller.Init(ctx))
|
||||||
tool.Must(api.Start(ctx))
|
tool.Must(api.Start(ctx))
|
||||||
|
|
||||||
<-ctx.Done()
|
<-ctx.Done()
|
||||||
|
@ -1,11 +1,13 @@
|
|||||||
package controller
|
package controller
|
||||||
|
|
||||||
|
import "context"
|
||||||
|
|
||||||
var (
|
var (
|
||||||
// UserController todo: 可以实现自己的 controller
|
// UserController todo: 可以实现自己的 controller
|
||||||
UserController userController
|
UserController userController
|
||||||
)
|
)
|
||||||
|
|
||||||
func Init() error {
|
func Init(ctx context.Context) error {
|
||||||
UserController = uc{}
|
UserController = uc{}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
@ -12,7 +12,7 @@ func _mix(c *nf.Ctx, msg string) string {
|
|||||||
return msg
|
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) {
|
func Debug(c *nf.Ctx, msg string, data ...any) {
|
||||||
|
@ -8,7 +8,6 @@ import (
|
|||||||
"github.com/loveuer/nf/nft/resp"
|
"github.com/loveuer/nf/nft/resp"
|
||||||
"net/http"
|
"net/http"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
|
||||||
"time"
|
"time"
|
||||||
"ultone/internal/opt"
|
"ultone/internal/opt"
|
||||||
"ultone/internal/tool"
|
"ultone/internal/tool"
|
||||||
@ -23,28 +22,24 @@ func New() nf.HandlerFunc {
|
|||||||
return func(c *nf.Ctx) error {
|
return func(c *nf.Ctx) error {
|
||||||
var (
|
var (
|
||||||
now = time.Now()
|
now = time.Now()
|
||||||
trace = c.Get(Header)
|
traceId = c.Get(Header)
|
||||||
logFn func(msg string, data ...any)
|
logFn func(msg string, data ...any)
|
||||||
ip = c.IP()
|
ip = c.IP()
|
||||||
)
|
)
|
||||||
|
|
||||||
if trace == "" {
|
if traceId == "" {
|
||||||
trace = uuid.Must(uuid.NewV7()).String()
|
traceId = uuid.Must(uuid.NewV7()).String()
|
||||||
}
|
}
|
||||||
|
|
||||||
c.SetHeader(Header, trace)
|
c.SetHeader(Header, traceId)
|
||||||
|
|
||||||
traces := strings.Split(trace, "-")
|
c.Locals(opt.LocalTraceKey, traceId)
|
||||||
shortTrace := traces[len(traces)-1]
|
|
||||||
|
|
||||||
c.Locals(opt.LocalTraceKey, trace)
|
|
||||||
c.Locals(opt.LocalShortTraceKey, shortTrace)
|
|
||||||
|
|
||||||
err := c.Next()
|
err := c.Next()
|
||||||
status, _ := strconv.Atoi(c.Writer.Header().Get(resp.RealStatusHeader))
|
status, _ := strconv.Atoi(c.Writer.Header().Get(resp.RealStatusHeader))
|
||||||
duration := time.Since(now)
|
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 {
|
switch {
|
||||||
case status >= 500:
|
case status >= 500:
|
||||||
|
@ -37,7 +37,6 @@ const (
|
|||||||
OpLogWriteDurationSecond = 5
|
OpLogWriteDurationSecond = 5
|
||||||
|
|
||||||
LocalTraceKey = "X-Trace"
|
LocalTraceKey = "X-Trace"
|
||||||
LocalShortTraceKey = "X-Short-Trace"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
Loading…
x
Reference in New Issue
Block a user