feat: 实现 context-aware logger 自动附加 trace 字段
This commit is contained in:
25
backend/internal/trace/logger.go
Normal file
25
backend/internal/trace/logger.go
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
package trace
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/hhs/camtalk/internal/logger"
|
||||||
|
"go.uber.org/zap"
|
||||||
|
)
|
||||||
|
|
||||||
|
// FromContext 返回自动附加 trace_id/request_id/session_id 的 logger
|
||||||
|
func FromContext(ctx context.Context) *zap.SugaredLogger {
|
||||||
|
log := logger.Log
|
||||||
|
|
||||||
|
if traceID := GetTraceID(ctx); traceID != "" {
|
||||||
|
log = log.With("trace_id", traceID)
|
||||||
|
}
|
||||||
|
if requestID := GetRequestID(ctx); requestID != "" {
|
||||||
|
log = log.With("request_id", requestID)
|
||||||
|
}
|
||||||
|
if sessionID := GetSessionID(ctx); sessionID != "" {
|
||||||
|
log = log.With("session_id", sessionID)
|
||||||
|
}
|
||||||
|
|
||||||
|
return log
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user