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