on master help sign in
Restore auto-flushing for Handle
commit3e73f9441754e79e6858d368b6a07f46b736a0a3 authorMHova <mho@sumall.com> dateMon 16 Nov 2015, 20:36 (11 years ago) parentc5c577f
1 file changed+3−2
wai-extra/Network/Wai/Middleware/RequestLogger.hs+3−2
wai-extra/Network/Wai/Middleware/RequestLogger.hs+3−2
@@ -19,10 +19,11 @@ module Network.Wai.Middleware.RequestLogger
1919 , IPAddrSource (..)
2020 ) where
2121
22−import System.IO (Handle, stdout)
22+import System.IO (Handle, hFlush, stdout)
2323import qualified Blaze.ByteString.Builder as B
2424import qualified Data.ByteString as BS
2525import Data.ByteString.Char8 (pack, unpack)
26+import Control.Monad (when)
2627import Control.Monad.IO.Class (liftIO)
2728import Network.Wai
2829 ( Request(..), requestBodyLength, RequestBodyLength(..)
@@ -91,7 +92,7 @@ mkRequestLogger :: RequestLoggerSettings -> IO Middleware
9192mkRequestLogger RequestLoggerSettings{..} = do
9293 let (callback, flusher) =
9394 case destination of
94− Handle h -> (BS.hPutStr h . logToByteString, return ())
95+ Handle h -> (BS.hPutStr h . logToByteString, when autoFlush (hFlush h))
9596 Logger l -> (pushLogStr l, flushLogStr l)
9697 Callback c -> (c, return ())
9798 case outputFormat of