diff --git a/httpserver/server.go b/httpserver/server.go index a7006af..a635be5 100644 --- a/httpserver/server.go +++ b/httpserver/server.go @@ -45,7 +45,7 @@ type Server struct { // You can use Options to override the defaults. // Default list: // - Address: ":8080". -func New(logHandler slog.Handler, handler http.Handler, options ...Option) *Server { +func New(logger *slog.Logger, handler http.Handler, options ...Option) *Server { const ( handlerTimeout = 10 * time.Second readHeaderTimeout = 5 * time.Second @@ -70,7 +70,7 @@ func New(logHandler slog.Handler, handler http.Handler, options ...Option) *Serv WriteTimeout: writeTimeout, IdleTimeout: idleTimeout, }, - log: slog.New(logHandler), + log: logger, done: make(chan struct{}), } @@ -91,8 +91,6 @@ func (s *Server) Shutdown(timeout time.Duration) error { close(s.done) }) - s.httpServer.Close() - err := s.httpServer.Shutdown(ctx) if err != nil && !errors.Is(err, http.ErrServerClosed) { return err diff --git a/httpserver/server_test.go b/httpserver/server_test.go index b0d9b70..f9f7604 100644 --- a/httpserver/server_test.go +++ b/httpserver/server_test.go @@ -21,7 +21,7 @@ import ( func TestServer_ShutdownWithoutCallingListenAndServe(t *testing.T) { req := require.New(t) - s := httpserver.New(slog.NewJSONHandler(os.Stdout, nil), nil) + s := httpserver.New(slog.Default(), nil) err := s.Shutdown(0) req.NoError(err) @@ -30,7 +30,7 @@ func TestServer_ShutdownWithoutCallingListenAndServe(t *testing.T) { func TestServer_DoubleShutdown(t *testing.T) { req := require.New(t) - s := httpserver.New(slog.NewJSONHandler(os.Stdout, nil), nil) + s := httpserver.New(slog.Default(), nil) err := s.Shutdown(0) req.NoError(err) @@ -91,7 +91,7 @@ func TestServer(t *testing.T) { // holds server options type serverOptions struct { - logger slog.Handler + logger *slog.Logger handler http.Handler options []httpserver.Option } @@ -118,7 +118,7 @@ func TestServer(t *testing.T) { // server will shutdown after request finishes due to increased timeout "ShutdownWithoutClosingLongLivedConnectionContext": { serverOptions: serverOptions{ - logger: slog.NewJSONHandler(os.Stdout, nil), + logger: slog.Default(), handler: defaultHandler(), }, @@ -132,7 +132,7 @@ func TestServer(t *testing.T) { // request finishes due to the timeout "ShutdownDeadlineExceeded": { serverOptions: serverOptions{ - logger: slog.NewJSONHandler(os.Stdout, nil), + logger: slog.Default(), handler: defaultHandler(), }, @@ -145,7 +145,7 @@ func TestServer(t *testing.T) { // server shutdown wll also close the request context "ShutdownWithClosingBaseContext": { serverOptions: serverOptions{ - logger: slog.NewJSONHandler(os.Stdout, nil), + logger: slog.Default(), handler: defaultHandler(), options: []httpserver.Option{httpserver.WithBaseContext( context.Background(), @@ -161,7 +161,7 @@ func TestServer(t *testing.T) { "ShutdownWithSignals": { serverOptions: serverOptions{ - logger: slog.NewJSONHandler(os.Stdout, nil), + logger: slog.Default(), handler: defaultHandler(), options: []httpserver.Option{ httpserver.WithShutdownSignalsOption(syscall.SIGINT),