Files
sablier/internal/server/logging.go
Alexis Couvreur 0588627d36 fix: bump go 1.25 (#723)
* fix: bump go 1.25

also bump deps and fix golangci lint

* golangci lint fixes
2025-11-10 22:51:07 -05:00

50 lines
1.2 KiB
Go

package server
import (
"context"
"log/slog"
"github.com/gin-gonic/gin"
sloggin "github.com/samber/slog-gin"
)
// StructuredLogger logs a gin HTTP request in JSON format. Allows to set the
// logger for testing purposes.
func StructuredLogger(logger *slog.Logger) gin.HandlerFunc {
if logger.Enabled(context.TODO(), slog.LevelDebug) {
return sloggin.NewWithConfig(logger, sloggin.Config{
DefaultLevel: slog.LevelInfo,
ClientErrorLevel: slog.LevelWarn,
ServerErrorLevel: slog.LevelError,
WithUserAgent: false,
WithRequestID: true,
WithRequestBody: false,
WithRequestHeader: false,
WithResponseBody: false,
WithResponseHeader: false,
WithSpanID: false,
WithTraceID: false,
Filters: []sloggin.Filter{},
})
}
return sloggin.NewWithConfig(logger, sloggin.Config{
DefaultLevel: slog.LevelInfo,
ClientErrorLevel: slog.LevelWarn,
ServerErrorLevel: slog.LevelError,
WithUserAgent: false,
WithRequestID: true,
WithRequestBody: false,
WithRequestHeader: false,
WithResponseBody: false,
WithResponseHeader: false,
WithSpanID: false,
WithTraceID: false,
Filters: []sloggin.Filter{},
})
}