{-# LANGUAGE OverloadedStrings #-}

-- | 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
-- >
-- > 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 date req status (Just len)
-- >     liftIO $ hFlush stdout
-- >     return $ ResponseBuilder status
-- >                              [("Content-Type", "text/plain")
-- >                              ,("Content-Length", pack (show len))]
-- >            $ fromByteString "PONG"

module Network.Wai.Logger (
  -- * Low level modules
    module Network.Wai.Logger.Date
  , module Network.Wai.Logger.File
  , module Network.Wai.Logger.Format
  , module Network.Wai.Logger.Utils
  , module Network.Wai.Logger.IO
  -- * High level modules
  -- | See "Network.Wai.Logger.Prefork".
  ) where

import Network.Wai.Logger.Date
import Network.Wai.Logger.File
import Network.Wai.Logger.Format
import Network.Wai.Logger.IO
import Network.Wai.Logger.Utils