@@ -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,18 @@ 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+defaultRequestLoggerSettings :: RequestLoggerSettings
90+defaultRequestLoggerSettings =
91+ RequestLoggerSettings
92+ { outputFormat = Detailed True
93+ , autoFlush = True
94+ , destination = Handle stdout
95+ }
96+
8497instance Default RequestLoggerSettings where
85− def = RequestLoggerSettings
86− { outputFormat = Detailed True
87− , autoFlush = True
88− , destination = Handle stdout
89− }
98+ def = defaultRequestLoggerSettings
9099
91100mkRequestLogger :: RequestLoggerSettings -> IO Middleware
92101mkRequestLogger RequestLoggerSettings{..} = do