packages feed

wai-logger 2.3.6 → 2.3.7

raw patch · 3 files changed

+34/−18 lines, 3 files

Files

Network/Wai/Logger.hs view
@@ -42,6 +42,7 @@   , serverpushLogger   , logRotator   , logRemover+  , initLoggerUser   , initLogger   -- * Types   , IPAddrSource(..)@@ -112,17 +113,24 @@ ----------------------------------------------------------------  -- | Creating 'ApacheLogger' according to 'LogType'.-initLogger :: IPAddrSource -> LogType -> IO FormattedTime-           -> IO ApacheLoggerActions-initLogger ipsrc typ tgetter = do+initLoggerUser :: ToLogStr user => Maybe (Request -> Maybe user) -> IPAddrSource -> LogType -> IO FormattedTime+               -> IO ApacheLoggerActions+initLoggerUser ugetter ipsrc typ tgetter = do     (fl, cleanUp) <- newFastLogger typ     return $ ApacheLoggerActions {-        apacheLogger     = apache fl ipsrc tgetter-      , serverpushLogger = serverpush fl ipsrc tgetter+        apacheLogger     = apache fl ipsrc ugetter tgetter+      , serverpushLogger = serverpush fl ipsrc ugetter tgetter       , logRotator       = return ()       , logRemover       = cleanUp       } +initLogger :: IPAddrSource -> LogType -> IO FormattedTime+           -> IO ApacheLoggerActions+initLogger = initLoggerUser nouser+  where+    nouser :: Maybe (Request -> Maybe ByteString)+    nouser = Nothing+ --- | Checking if a log file can be written if 'LogType' is 'LogFileNoRotate' or 'LogFile'. logCheck :: LogType -> IO () logCheck LogNone          = return ()@@ -135,15 +143,15 @@  ---------------------------------------------------------------- -apache :: (LogStr -> IO ()) -> IPAddrSource -> IO FormattedTime -> ApacheLogger-apache cb ipsrc dateget req st mlen = do+apache :: ToLogStr user => (LogStr -> IO ()) -> IPAddrSource -> Maybe (Request -> Maybe user) -> IO FormattedTime -> ApacheLogger+apache cb ipsrc userget dateget req st mlen = do     zdata <- dateget-    cb (apacheLogStr ipsrc zdata req st mlen)+    cb (apacheLogStr ipsrc (justGetUser userget) zdata req st mlen) -serverpush :: (LogStr -> IO ()) -> IPAddrSource -> IO FormattedTime -> ServerPushLogger-serverpush cb ipsrc dateget req path size = do+serverpush :: ToLogStr user => (LogStr -> IO ()) -> IPAddrSource -> Maybe (Request -> Maybe user) -> IO FormattedTime -> ServerPushLogger+serverpush cb ipsrc userget dateget req path size = do     zdata <- dateget-    cb (serverpushLogStr ipsrc zdata req path size)+    cb (serverpushLogStr ipsrc (justGetUser userget) zdata req path size)  --------------------------------------------------------------- @@ -167,3 +175,7 @@ clockDateCacher = do     tgetter <- newTimeCache simpleTimeFormat     return (tgetter, return ())++justGetUser :: Maybe (Request -> Maybe user) -> (Request -> Maybe user)+justGetUser (Just getter) = getter+justGetUser Nothing       = \_ -> Nothing
Network/Wai/Logger/Apache.hs view
@@ -41,10 +41,12 @@   | FromFallback  -- | Apache style log format.-apacheLogStr :: IPAddrSource -> FormattedTime -> Request -> Status -> Maybe Integer -> LogStr-apacheLogStr ipsrc tmstr req status msize =+apacheLogStr :: ToLogStr user => IPAddrSource -> (Request -> Maybe user) -> FormattedTime -> Request -> Status -> Maybe Integer -> LogStr+apacheLogStr ipsrc userget tmstr req status msize =       toLogStr (getSourceIP ipsrc req)-  <> " - - ["+  <> " - "+  <> maybe "-" toLogStr (userget req)+  <> " ["   <> toLogStr tmstr   <> "] \""   <> toLogStr (requestMethod req)@@ -75,10 +77,12 @@ #endif  -- | HTTP/2 Push log format in the Apache style.-serverpushLogStr :: IPAddrSource -> FormattedTime -> Request -> ByteString -> Integer -> LogStr-serverpushLogStr ipsrc tmstr req path size =+serverpushLogStr :: ToLogStr user => IPAddrSource -> (Request -> Maybe user) -> FormattedTime -> Request -> ByteString -> Integer -> LogStr+serverpushLogStr ipsrc userget tmstr req path size =       toLogStr (getSourceIP ipsrc req)-  <> " - - ["+  <> " - "+  <> maybe "-" toLogStr (userget req)+  <> " ["   <> toLogStr tmstr   <> "] \"PUSH "   <> toLogStr path
wai-logger.cabal view
@@ -1,5 +1,5 @@ Name:                   wai-logger-Version:                2.3.6+Version:                2.3.7 Author:                 Kazu Yamamoto <kazu@iij.ad.jp> Maintainer:             Kazu Yamamoto <kazu@iij.ad.jp> License:                BSD3