diff --git a/om-http.cabal b/om-http.cabal
--- a/om-http.cabal
+++ b/om-http.cabal
@@ -1,6 +1,6 @@
 cabal-version:       3.0
 name:                om-http
-version:             0.4.1.0
+version:             0.5.0.0
 synopsis:            Http utilities.
 description:         Random HTTP utilities.
 homepage:            https://github.com/owensmurray/om-http
@@ -23,6 +23,7 @@
     , base64             >= 1.0       && < 1.1
     , bytestring         >= 0.11.5.0  && < 0.13
     , case-insensitive   >= 1.2.0.11  && < 1.3
+    , containers         >= 0.6.8     && < 0.8
     , directory          >= 1.3.7.1   && < 1.4
     , filepath           >= 1.4.101.0 && < 1.6
     , http-types         >= 0.12.4    && < 0.13
diff --git a/src/OM/HTTP.hs b/src/OM/HTTP.hs
--- a/src/OM/HTTP.hs
+++ b/src/OM/HTTP.hs
@@ -37,6 +37,7 @@
 import Data.ByteString.Base64 (encodeBase64)
 import Data.List ((\\))
 import Data.Maybe (catMaybes)
+import Data.Set (Set, member)
 import Data.String (IsString(fromString))
 import Data.Text (Text)
 import Data.Text.Encoding (decodeUtf8')
@@ -47,8 +48,9 @@
 import Language.Haskell.TH (Code(examineCode), Q, TExp, runIO)
 import Language.Haskell.TH.Syntax (addDependentFile)
 import Network.HTTP.Types
-  ( Status(statusCode, statusMessage), Header, internalServerError500
-  , methodNotAllowed405, movedPermanently301, ok200, status404
+  ( Status(statusCode, statusMessage), Header, HeaderName
+  , internalServerError500, methodNotAllowed405, movedPermanently301, ok200
+  , status404
   )
 import Network.Mime (defaultMimeLookup)
 import Network.Socket
@@ -99,7 +101,7 @@
   -> IO ()
 runTlsRedirect logging serverName serverVersion url =
   run 80
-    . requestLogging logging
+    . requestLogging logging mempty
     . setServer serverName serverVersion
     . hstsDirective 600
     . logExceptionsAndContinue logging
@@ -187,8 +189,9 @@
 -}
 requestLogging
   :: (Loc -> LogSource -> LogLevel -> LogStr -> IO ())
+  -> Set HeaderName {-^ Headers to redact -}
   -> Middleware
-requestLogging logging app req respond =
+requestLogging logging redactHeaders app req respond =
     (`runLoggingT` logging) $ do
       logInfo $ "Starting request: " <> reqStr :#
         [ "method" .= decodeUtf8Safe (requestMethod req)
@@ -201,7 +204,9 @@
               (\(name, val) ->
                 decodeUtf8Safe (CI.original name)
                 <> ": "
-                <> decodeUtf8Safe val
+                <> if name `member` redactHeaders
+                     then "<redacted>"
+                     else decodeUtf8Safe val
               )
               (requestHeaders req)
         ]
