rpf-0.2.0: Milter/Log.hs
module Milter.Log where
import Control.Applicative
import Data.IORef
import MailSpec
import Milter.Env
import Milter.Types
----------------------------------------------------------------
logError :: Env -> IORef State -> String -> IO ()
logError env st msg = do
msg' <- addIP st msg
errorHook env msg'
logResult :: Env -> IORef State -> String -> IO ()
logResult env st msg = do
msg' <- addIP st msg
let msg'' = msg' ++ if logonly env then " (log only)" else ""
resultHook env msg''
logMonitor :: Env -> IORef State -> String -> IO ()
logMonitor env st msg = do
msg' <- addIP st msg
monitorHook env msg'
logDebug :: Env -> IORef State -> String -> IO ()
logDebug env st msg = do
msg' <- addIP st msg
debugHook env msg'
addIP :: IORef State -> String -> IO String
addIP st msg = do
ip <- msPeerIP . mailspec <$> readIORef st
return $ show ip ++ " " ++ msg