module Network.Wai.Middleware.Debug (debug) where
import Network.Wai (Middleware, requestMethod, requestHeaders, rawPathInfo, rawQueryString)
import Data.ByteString.Char8 (unpack)
import System.IO (hPutStrLn, stderr)
import Control.Monad.IO.Class (liftIO)
debug :: Middleware
debug app req = do
liftIO $ hPutStrLn stderr $ concat
[ unpack $ requestMethod req
, " "
, unpack $ rawPathInfo req
, unpack $ rawQueryString req
, "\n"
, (++) "Accept: " $ maybe "" unpack $ lookup "Accept" $ requestHeaders req
, "\n"
]
app req