yam-0.5.3: src/Yam/Trace.hs
module Yam.Trace where
import qualified Data.Vault.Lazy as L
import Network.Wai
import Yam.Logger
import Yam.Types
traceMw :: Middleware
traceMw app req resH = do
traceId <- randomString 12
let h = ("X-TRACE-ID",encodeUtf8 traceId)
app req {vault = L.insert extensionLogKey traceId (vault req)} (resH . mapResponseHeaders (h:))
traceMiddleware :: Bool -> AppMiddleware
traceMiddleware enabled = simpleWebMiddleware (enabled, "Trace") traceMw