wai-logger 2.3.6 → 2.3.7
raw patch · 3 files changed
+34/−18 lines, 3 files
Files
- Network/Wai/Logger.hs +23/−11
- Network/Wai/Logger/Apache.hs +10/−6
- wai-logger.cabal +1/−1
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