wai-extra 2.0.3 → 2.0.3.1
raw patch · 3 files changed
+19/−12 lines, 3 files
Files
- Network/Wai/Middleware/RequestLogger.hs +7/−9
- Network/Wai/Middleware/RequestLogger/Internal.hs +11/−2
- wai-extra.cabal +1/−1
Network/Wai/Middleware/RequestLogger.hs view
@@ -79,21 +79,19 @@ mkRequestLogger :: RequestLoggerSettings -> IO Middleware mkRequestLogger RequestLoggerSettings{..} = do- callback <-- case destination of- Handle h -> return $ BS.hPutStr h . logToByteString- Logger l -> return $ \msg -> do- pushLogStr l msg- flushLogStr l- Callback c -> return c+ let (callback, flusher) =+ case destination of+ Handle h -> (BS.hPutStr h . logToByteString, return ())+ Logger l -> (pushLogStr l, flushLogStr l)+ Callback c -> (c, return ()) case outputFormat of Apache ipsrc -> do- getdate <- getDateGetter+ getdate <- getDateGetter flusher apache <- initLogger ipsrc (LogCallback callback (return ())) getdate return $ apacheMiddleware apache Detailed useColors -> detailedMiddleware callback useColors CustomOutputFormat formatter -> do- getdate <- getDateGetter+ getdate <- getDateGetter flusher return $ customMiddleware callback getdate formatter apacheMiddleware :: ApacheLoggerActions -> Middleware
Network/Wai/Middleware/RequestLogger/Internal.hs view
@@ -9,6 +9,8 @@ import Data.ByteString (ByteString) import Network.Wai.Logger (clockDateCacher)+import Control.Concurrent (forkIO, threadDelay)+import Control.Monad (forever) #if MIN_VERSION_fast_logger(2, 1, 0) import System.Log.FastLogger (LogStr, fromLogStr)@@ -36,5 +38,12 @@ #endif -getDateGetter :: IO (IO ByteString)-getDateGetter = fmap fst clockDateCacher+getDateGetter :: IO () -- ^ flusher+ -> IO (IO ByteString)+getDateGetter flusher = do+ (getter, updater) <- clockDateCacher+ _ <- forkIO $ forever $ do+ threadDelay 1000000+ updater+ flusher+ return getter
wai-extra.cabal view
@@ -1,5 +1,5 @@ Name: wai-extra-Version: 2.0.3+Version: 2.0.3.1 Synopsis: Provides some basic WAI handlers and middleware. Description: The goal here is to provide common features without many dependencies. License: MIT