wai-logger-0.1.0: A logging system for WAI

Network.Wai.Logger

Description

Logging system for WAI applications.

Sample code:

 {-# LANGUAGE OverloadedStrings #-}
 module Main where

 import Blaze.ByteString.Builder (fromByteString)
 import Control.Monad.IO.Class (liftIO)
 import Data.ByteString.Char8
 import Network.HTTP.Types (status200)
 import Network.Wai
 import Network.Wai.Handler.Warp
 import Network.Wai.Logger
 import System.IO
 import System.Log.FastLogger

 main :: IO ()
 main = do
     dref <- dateInit
     run 3000 $ logapp dref

 logapp :: DateRef -> Application
 logapp dref req = do
     date <- liftIO $ getDate dref
     let status = status200
         len = 4
     liftIO $ hPutLogStr stdout $ apacheFormat FromSocket date req status (Just len)
     liftIO $ hFlush stdout
     return $ ResponseBuilder status
         [("Content-Type", "text/plain")
         ,("Content-Length", pack (show len))]
         $ fromByteString "PONG"

Documentation