packages feed

mighttpd2-2.3.0: Log.hs

{-# LANGUAGE OverloadedStrings #-}

module Log (
    logInit
  , logController
  , logCheck
  , module Log.Types
  ) where

import Control.Concurrent
import Control.Monad
import Log.Check
import Log.File
import Log.Stdout
import Log.Types

----------------------------------------------------------------

logInit :: LogType -> IO Logger
logInit LogNone        = noLoggerInit
logInit LogStdout      = stdoutLoggerInit
logInit (LogFile spec) = fileLoggerInit spec

noLoggerInit :: IO Logger
noLoggerInit = return noLogger
  where
    noLogger _ _ _ = return ()

logController :: LogType -> LogController
logController LogNone        = noLoggerController
logController LogStdout      = noLoggerController
logController (LogFile spec) = fileLoggerController spec

noLoggerController :: LogController
noLoggerController _ = forever $ threadDelay 10000000