diff options
Diffstat (limited to 'src/LogFormat.hs')
-rw-r--r-- | src/LogFormat.hs | 64 |
1 files changed, 35 insertions, 29 deletions
diff --git a/src/LogFormat.hs b/src/LogFormat.hs index 9eb25f1..0f75079 100644 --- a/src/LogFormat.hs +++ b/src/LogFormat.hs @@ -1,40 +1,46 @@ {-# LANGUAGE OverloadedStrings #-} -module LogFormat ( - logFormat -) where +module LogFormat + ( logFormat + ) where +import qualified Data.ByteString.Char8 as BS import Data.Maybe (fromMaybe) import Data.Monoid ((<>)) import Network.HTTP.Types (Status(statusCode)) -import Network.Wai (Request, httpVersion, requestHeaders, requestMethod, - rawPathInfo, requestHeaderReferer, requestHeaderUserAgent) +import Network.Wai + ( Request + , httpVersion + , rawPathInfo + , requestHeaderReferer + , requestHeaderUserAgent + , requestHeaders + , requestMethod + ) import System.Log.FastLogger (LogStr, toLogStr) -import qualified Data.ByteString.Char8 as BS -- Sligthly modified Combined Log Format. -- User ID extracted from the From header. logFormat :: BS.ByteString -> Request -> Status -> Maybe Integer -> LogStr -logFormat t req st msize = "" - <> toLogStr (fromMaybe "-" $ lookup "X-Forwarded-For" headers) - <> " - " - <> toLogStr (fromMaybe "-" $ lookup "From" headers) - <> " [" - <> toLogStr t - <> "] \"" - <> toLogStr (requestMethod req) - <> " " - <> toLogStr (rawPathInfo req) - <> " " - <> toLogStr (show $ httpVersion req) - <> "\" " - <> toLogStr (show $ statusCode st) - <> " " - <> toLogStr (maybe "-" show msize) - <> " \"" - <> toLogStr (fromMaybe "" $ requestHeaderReferer req) - <> "\" \"" - <> toLogStr (fromMaybe "" $ requestHeaderUserAgent req) - <> "\"\n" - where headers = requestHeaders req - +logFormat t req st msize = + "" <> + toLogStr (fromMaybe "-" $ lookup "X-Forwarded-For" headers) <> + " - " <> + toLogStr (fromMaybe "-" $ lookup "From" headers) <> + " [" <> + toLogStr t <> + "] \"" <> + toLogStr (requestMethod req) <> + " " <> + toLogStr (rawPathInfo req) <> + " " <> + toLogStr (show $ httpVersion req) <> + "\" " <> + toLogStr (show $ statusCode st) <> + " " <> + toLogStr (maybe "-" show msize) <> + " \"" <> + toLogStr (fromMaybe "" $ requestHeaderReferer req) <> + "\" \"" <> toLogStr (fromMaybe "" $ requestHeaderUserAgent req) <> "\"\n" + where + headers = requestHeaders req |