diff --git a/README.md b/README.md index 7c9ba2f..4837cc6 100644 --- a/README.md +++ b/README.md @@ -65,6 +65,41 @@ No breaking changes will be made to exported APIs before v2.0.0. ## 💡 Usage +### Handler options + +```go +type Config struct { + DefaultLevel slog.Level + ClientErrorLevel slog.Level + ServerErrorLevel slog.Level + + WithUserAgent bool + WithRequestID bool + WithRequestBody bool + WithRequestHeader bool + WithResponseBody bool + WithResponseHeader bool + WithSpanID bool + WithTraceID bool + + Filters []Filter +} +``` + +Attributes will be injected in log payload. + +Other global parameters: + +```go +sloggin.TraceIDKey = "trace-id" +sloggin.SpanIDKey = "span-id" +sloggin.RequestBodyMaxSize = 64 * 1024 // 64KB +sloggin.ResponseBodyMaxSize = 64 * 1024 // 64KB +sloggin.HiddenRequestHeaders = map[string]struct{}{ ... } +sloggin.HiddenResponseHeaders = map[string]struct{}{ ... } +sloggin.RequestIDHeaderKey = "X-Request-Id" +``` + ### Minimal ```go diff --git a/middleware.go b/middleware.go index 906fead..1747c4a 100644 --- a/middleware.go +++ b/middleware.go @@ -18,6 +18,9 @@ const ( ) var ( + TraceIDKey = "trace-id" + SpanIDKey = "span-id" + RequestBodyMaxSize = 64 * 1024 // 64KB ResponseBodyMaxSize = 64 * 1024 // 64KB @@ -168,11 +171,11 @@ func NewWithConfig(logger *slog.Logger, config Config) gin.HandlerFunc { // otel if config.WithTraceID { traceID := trace.SpanFromContext(c.Request.Context()).SpanContext().TraceID().String() - baseAttributes = append(baseAttributes, slog.String("trace-id", traceID)) + baseAttributes = append(baseAttributes, slog.String(TraceIDKey, traceID)) } if config.WithSpanID { spanID := trace.SpanFromContext(c.Request.Context()).SpanContext().SpanID().String() - baseAttributes = append(baseAttributes, slog.String("span-id", spanID)) + baseAttributes = append(baseAttributes, slog.String(SpanIDKey, spanID)) } // request body