on master help sign in
Merge pull request #757 from zoominsoftware/resp-size-in-custom-loggers

Supply response size to custom loggers when available.

commitde74144979682d60762b7f03f1f254ee4d9a54c2 authorMichael Snoyman <michael@snoyman.com> dateMon 24 Jun 2019, 19:26 (7 years ago) parent8f9662b4496822
3 files changed+10−5
wai-extra/ChangeLog.md+5 wai-extra/Network/Wai/Middleware/RequestLogger.hs+4−4 wai-extra/wai-extra.cabal+1−1
wai-extra/ChangeLog.md+5
@@ -1,5 +1,10 @@
11# Changelog for wai-extra
22
3+## 3.0.26.1
4+
5+* When available, supply the response size to custom loggers
6+ [#757](https://github.com/yesodweb/wai/pull/757)
7+
38## 3.0.26
49
510* Throw 413 for too large payload
wai-extra/Network/Wai/Middleware/RequestLogger.hs+4−4
@@ -118,8 +118,8 @@ apacheMiddleware ala app req sendResponse = app req $ \res -> do
118118customMiddleware :: Callback -> IO ZonedDate -> OutputFormatter -> Middleware
119119customMiddleware cb getdate formatter app req sendResponse = app req $ \res -> do
120120 date <- liftIO getdate
121− -- We use Nothing for the response size since we generally don't know it
122− liftIO $ cb $ formatter date req (responseStatus res) Nothing
121+ let msize = contentLength (responseHeaders res)
122+ liftIO $ cb $ formatter date req (responseStatus res) msize
123123 sendResponse res
124124
125125customMiddlewareWithDetails :: Callback -> IO ZonedDate -> OutputFormatterWithDetails -> Middleware
@@ -129,12 +129,12 @@ customMiddlewareWithDetails cb getdate formatter app req sendResponse = do
129129 app req' $ \res -> do
130130 t1 <- getCurrentTime
131131 date <- liftIO getdate
132− -- We use Nothing for the response size since we generally don't know it
132+ let msize = contentLength (responseHeaders res)
133133 builderIO <- newIORef $ B.byteString ""
134134 res' <- recordChunks builderIO res
135135 rspRcv <- sendResponse res'
136136 _ <- liftIO . cb .
137− formatter date req' (responseStatus res') Nothing (t1 `diffUTCTime` t0) reqBody =<<
137+ formatter date req' (responseStatus res') msize (t1 `diffUTCTime` t0) reqBody =<<
138138 readIORef builderIO
139139 return rspRcv
140140
wai-extra/wai-extra.cabal+1−1
@@ -1,5 +1,5 @@
11Name: wai-extra
2−Version: 3.0.26
2+Version: 3.0.26.1
33Synopsis: Provides some basic WAI handlers and middleware.
44description:
55 Provides basic WAI handler and middleware functionality: