Skip to content

Commit

Permalink
feat(httpserver): accept *slog.Logger instead of slog.Handler
Browse files Browse the repository at this point in the history
  • Loading branch information
bradub committed Nov 20, 2024
1 parent 23743d4 commit daaea2e
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 11 deletions.
6 changes: 2 additions & 4 deletions httpserver/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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{}),
}

Expand All @@ -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
Expand Down
14 changes: 7 additions & 7 deletions httpserver/server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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)
Expand Down Expand Up @@ -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
}
Expand All @@ -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(),
},

Expand All @@ -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(),
},

Expand All @@ -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(),
Expand All @@ -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),
Expand Down

0 comments on commit daaea2e

Please sign in to comment.