@@ -7,7 +7,8 @@ module Network.Wai.Middleware.RequestLogger
77 , logStdoutDev
88 -- * Create more versions
99 , mkRequestLogger
10− , RequestLoggerSettings
10+ , defaultRequestLoggerSettings
11+ , RequestLoggerSettings (..)
1112 , outputFormat
1213 , autoFlush
1314 , destination
@@ -64,7 +65,9 @@ data Destination = Handle Handle
6465
6566type Callback = LogStr -> IO ()
6667
67−-- | @RequestLoggerSettings@ is an instance of Default. See <https://hackage.haskell.org/package/data-default Data.Default> for more information.
68+-- | @RequestLoggerSettings@ is an instance of Default.
69+-- See <https://hackage.haskell.org/package/data-default Data.Default>
70+-- for more information.
6871--
6972-- @outputFormat@, @autoFlush@, and @destination@ are record fields
7073-- for the record type @RequestLoggerSettings@, so they can be used to
@@ -81,12 +84,20 @@ data RequestLoggerSettings = RequestLoggerSettings
8184 , destination :: Destination
8285 }
8386
87+-- | @defaultRequestLoggerSettings@ is the original 'Default' instance
88+-- factored out into a top-level declared variable.
89+--
90+-- @since 3.0.25.0
91+defaultRequestLoggerSettings :: RequestLoggerSettings
92+defaultRequestLoggerSettings =
93+ RequestLoggerSettings
94+ { outputFormat = Detailed True
95+ , autoFlush = True
96+ , destination = Handle stdout
97+ }
98+
8499instance Default RequestLoggerSettings where
85− def = RequestLoggerSettings
86− { outputFormat = Detailed True
87− , autoFlush = True
88− , destination = Handle stdout
89− }
100+ def = defaultRequestLoggerSettings
90101
91102mkRequestLogger :: RequestLoggerSettings -> IO Middleware
92103mkRequestLogger RequestLoggerSettings{..} = do