aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Pervaz Boocha <mboocha@sudomsg.com>2025-08-07 22:54:36 +0530
committerMarc Pervaz Boocha <mboocha@sudomsg.com>2025-08-07 22:54:36 +0530
commitae4b37bb136397ca4631ed39526b8156622f285b (patch)
tree50ff0b8df3ed2b0189929a9d127c9cbdd7f75d79
parentFixed Complience of slog test handler (diff)
downloadkit-ae4b37bb136397ca4631ed39526b8156622f285b.tar
kit-ae4b37bb136397ca4631ed39526b8156622f285b.tar.gz
kit-ae4b37bb136397ca4631ed39526b8156622f285b.tar.bz2
kit-ae4b37bb136397ca4631ed39526b8156622f285b.tar.lz
kit-ae4b37bb136397ca4631ed39526b8156622f285b.tar.xz
kit-ae4b37bb136397ca4631ed39526b8156622f285b.tar.zst
kit-ae4b37bb136397ca4631ed39526b8156622f285b.zip
Removed the extra logger arguement from http
-rw-r--r--logging/http/http.go19
-rw-r--r--logging/http/http_test.go4
2 files changed, 7 insertions, 16 deletions
diff --git a/logging/http/http.go b/logging/http/http.go
index b88ae3a..04b2e0c 100644
--- a/logging/http/http.go
+++ b/logging/http/http.go
@@ -24,7 +24,6 @@ type tracingWriter struct {
var (
_ http.ResponseWriter = &tracingWriter{}
- _ http.Flusher = &tracingWriter{}
_ http.Hijacker = &tracingWriter{}
_ interface{ Unwrap() http.ResponseWriter } = &tracingWriter{}
)
@@ -43,11 +42,6 @@ func (tw *tracingWriter) Write(b []byte) (int, error) {
return n, err
}
-func (tw *tracingWriter) Flush() {
- rc := http.NewResponseController(tw.ResponseWriter)
- _ = rc.Flush()
-}
-
func (tw *tracingWriter) Hijack() (net.Conn, *bufio.ReadWriter, error) {
rc := http.NewResponseController(tw.ResponseWriter)
conn, rw, err := rc.Hijack()
@@ -66,8 +60,7 @@ func (tw *tracingWriter) Unwrap() http.ResponseWriter {
// It recovers panics during request processing, logs them with stack traces,
// and returns a 500 Internal Server Error if the connection is not hijacked.
type LoggingHandler struct {
- next http.Handler
- logger *slog.Logger
+ next http.Handler
}
var _ http.Handler = &LoggingHandler{}
@@ -75,10 +68,9 @@ var _ http.Handler = &LoggingHandler{}
// New creates a new LoggingHandler wrapping the next http.Handler, using the provided slog.Logger.
//
// If logger is nil, it attempts to obtain one from the request context.
-func New(next http.Handler, logger *slog.Logger) *LoggingHandler {
+func New(next http.Handler) *LoggingHandler {
return &LoggingHandler{
- next: next,
- logger: logger,
+ next: next,
}
}
@@ -90,10 +82,7 @@ func New(next http.Handler, logger *slog.Logger) *LoggingHandler {
func (h *LoggingHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
- logger := h.logger
- if logger == nil {
- logger = logging.FromContext(ctx)
- }
+ logger := logging.FromContext(ctx)
logger = logger.With(
slog.String("method", r.Method),
diff --git a/logging/http/http_test.go b/logging/http/http_test.go
index 26e5974..832b49e 100644
--- a/logging/http/http_test.go
+++ b/logging/http/http_test.go
@@ -7,6 +7,7 @@ import (
"net/url"
"testing"
+ "go.sudomsg.com/kit/logging"
httpHandler "go.sudomsg.com/kit/logging/http"
"go.sudomsg.com/kit/logging/test"
)
@@ -65,9 +66,10 @@ func TestNew(t *testing.T) {
logger := slog.New(log)
- handler := httpHandler.New(tt.handler, logger)
+ handler := httpHandler.New(tt.handler)
r := httptest.NewRequest(tt.method, tt.url, nil)
+ r = r.WithContext(logging.WithLogger(r.Context(), logger))
w := httptest.NewRecorder()
handler.ServeHTTP(w, r)