package logger import ( "context" uuid2 "github.com/google/uuid" ) type ctxKey struct{} var ( CtxKey = ctxKey{} ) func traceId(ctx context.Context) string { if ctx == nil { uuid, _ := uuid2.NewV7() return uuid.String() } if id, _ := ctx.Value(CtxKey).(string); id != "" { return id } uuid, _ := uuid2.NewV7() return uuid.String() } func DebugCtx(ctx context.Context, msg string, data ...any) { msg = traceId(ctx) + " | " + msg DefaultLogger.Debug(msg, data...) } func InfoCtx(ctx context.Context, msg string, data ...any) { msg = traceId(ctx) + " | " + msg DefaultLogger.Info(msg, data...) } func WarnCtx(ctx context.Context, msg string, data ...any) { msg = traceId(ctx) + " | " + msg DefaultLogger.Warn(msg, data...) } func ErrorCtx(ctx context.Context, msg string, data ...any) { msg = traceId(ctx) + " | " + msg DefaultLogger.Error(msg, data...) } func PanicCtx(ctx context.Context, msg string, data ...any) { msg = traceId(ctx) + " | " + msg DefaultLogger.Panic(msg, data...) } func FatalCtx(ctx context.Context, msg string, data ...any) { msg = traceId(ctx) + " | " + msg DefaultLogger.Fatal(msg, data...) }