feat(logging): add trace_id to debug log line

... if exists in context
This commit is contained in:
Hans van den Bogert
2025-03-10 21:48:25 +01:00
parent b99bf8c252
commit 7cc399463c
+12 -2
View File
@@ -3,6 +3,7 @@ package http
import (
"net/http"
"go.opentelemetry.io/otel/trace"
"go.uber.org/zap"
)
@@ -18,13 +19,22 @@ func NewLoggingMiddleware(logger *zap.Logger) *LoggingMiddleware {
func (m *LoggingMiddleware) Handler(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
m.logger.Debug(
"request started",
fields := []zap.Field{
zap.String("proto", r.Proto),
zap.String("uri", r.RequestURI),
zap.String("method", r.Method),
zap.String("remote", r.RemoteAddr),
zap.String("user-agent", r.UserAgent()),
}
spanCtx := trace.SpanContextFromContext(r.Context())
if spanCtx.HasTraceID() {
fields = append(fields, zap.String("trace_id", spanCtx.TraceID().String()))
}
m.logger.Debug(
"request started",
fields...,
)
next.ServeHTTP(w, r)
})