From 00cda637788569ee25be64f27f132712cdc41077 Mon Sep 17 00:00:00 2001 From: Eric Promislow Date: Wed, 4 Sep 2024 12:02:15 -0700 Subject: [PATCH] Backport displaying panics and other errors from main to v0.5 --- server/server.go | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/server/server.go b/server/server.go index 984a240..e9ba9f3 100644 --- a/server/server.go +++ b/server/server.go @@ -36,20 +36,30 @@ type ListenOpts struct { BindHost string NoRedirect bool TLSListenerConfig dynamiclistener.Config + + // Override legacy behavior where server logs written to the application's logrus object + // were dropped unless logrus was set to debug-level (such as by launching steve with '--debug'). + // Setting this to true results in server logs appearing at an ERROR level. + DisplayServerLogs bool } func ListenAndServe(ctx context.Context, httpsPort, httpPort int, handler http.Handler, opts *ListenOpts) error { + logger := logrus.StandardLogger() + writer := logger.WriterLevel(logrus.DebugLevel) if opts == nil { opts = &ListenOpts{} } + if opts.DisplayServerLogs { + writer = logger.WriterLevel(logrus.ErrorLevel) + } + // Otherwise preserve legacy behaviour of displaying server logs only in debug mode. + + errorLog := log.New(writer, "", log.LstdFlags) if opts.TLSListenerConfig.TLSConfig == nil { opts.TLSListenerConfig.TLSConfig = &tls.Config{} } - logger := logrus.StandardLogger() - errorLog := log.New(logger.WriterLevel(logrus.DebugLevel), "", log.LstdFlags) - if httpsPort > 0 { tlsTCPListener, err := dynamiclistener.NewTCPListener(opts.BindHost, httpsPort) if err != nil {