@@ -118,8 +118,8 @@ apacheMiddleware ala app req sendResponse = app req $ \res -> do
118customMiddleware :: Callback -> IO ZonedDate -> OutputFormatter -> Middleware
118customMiddleware :: Callback -> IO ZonedDate -> OutputFormatter -> Middleware
119customMiddleware cb getdate formatter app req sendResponse = app req $ \res -> do
119customMiddleware cb getdate formatter app req sendResponse = app req $ \res -> do
120 date <- liftIO getdate
120 date <- liftIO getdate
121− -- We use Nothing for the response size since we generally don't know it
121+ let msize = contentLength (responseHeaders res)
122− liftIO $ cb $ formatter date req (responseStatus res) Nothing
122+ liftIO $ cb $ formatter date req (responseStatus res) msize
123 sendResponse res
123 sendResponse res
125customMiddlewareWithDetails :: Callback -> IO ZonedDate -> OutputFormatterWithDetails -> Middleware
125customMiddlewareWithDetails :: Callback -> IO ZonedDate -> OutputFormatterWithDetails -> Middleware
@@ -129,12 +129,12 @@ customMiddlewareWithDetails cb getdate formatter app req sendResponse = do
129 app req' $ \res -> do
129 app req' $ \res -> do
130 t1 <- getCurrentTime
130 t1 <- getCurrentTime
131 date <- liftIO getdate
131 date <- liftIO getdate
132− -- We use Nothing for the response size since we generally don't know it
132+ let msize = contentLength (responseHeaders res)
133 builderIO <- newIORef $ B.byteString ""
133 builderIO <- newIORef $ B.byteString ""
134 res' <- recordChunks builderIO res
134 res' <- recordChunks builderIO res
135 rspRcv <- sendResponse res'
135 rspRcv <- sendResponse res'
136 _ <- liftIO . cb .
136 _ <- liftIO . cb .
137− formatter date req' (responseStatus res') Nothing (t1 `diffUTCTime` t0) reqBody =<<
137+ formatter date req' (responseStatus res') msize (t1 `diffUTCTime` t0) reqBody =<<
138 readIORef builderIO
138 readIORef builderIO
139 return rspRcv
139 return rspRcv