@@ -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,19 @@ 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+-- @since 3.0.22.2
90+defaultRequestLoggerSettings :: RequestLoggerSettings
91+defaultRequestLoggerSettings =
92+ RequestLoggerSettings
93+ { outputFormat = Detailed True
94+ , autoFlush = True
95+ , destination = Handle stdout
96+ }
97+
8498instance Default RequestLoggerSettings where
85− def = RequestLoggerSettings
86− { outputFormat = Detailed True
87− , autoFlush = True
88− , destination = Handle stdout
89− }
99+ def = defaultRequestLoggerSettings
90100
91101mkRequestLogger :: RequestLoggerSettings -> IO Middleware
92102mkRequestLogger RequestLoggerSettings{..} = do