-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | An extensible log effect using extensible-effects -- -- Introduce two logging effects to your extensible effects arsenal @package log-effect @version 1.0.0 module Control.Eff.Log -- | Simple log effect, useful in pure code data Log l v -- | A more advanced version of Log. Adds an ability to log from -- multiple threads. data LogM m l v -- | Monadic action that does the real logging type Logger m l = l -> m () -- | Logger that outputs messages to stdout stdoutLogger :: (LogMessage l, MonadBase IO m) => Logger m l -- | Logger that outputs messages to stderr stderrLogger :: (LogMessage l, MonadBase IO m) => Logger m l -- | Handy typeclass to convert log messages for output class LogMessage l toMsg :: LogMessage l => l -> ByteString -- | Log something. logE :: Member (Log l) r => l -> Eff r () -- | Log something using LogM effect logM :: (Member (LogM m l) r, Lifted m r) => l -> Eff r () -- | Filter Log entries with a predicate. -- -- Note that, most of the time an explicit type signature for the -- predicate will be required. filterLog :: forall l r a. Member (Log l) r => (l -> Bool) -> Eff r a -> Eff r a -- | Filter Log entries with a predicate and a proxy. -- -- This is the same as filterLog but with a proxy l for type -- inference. filterLog' :: Member (Log l) r => (l -> Bool) -> proxy l -> Eff r a -> Eff r a -- | Collect log messages in a list. runLogPure :: Eff (Log l : r) a -> Eff r (a, [l]) -- | Run the Logger action in the base monad for every log line. runLog :: Lifted m r => Logger m l -> Eff (Log l : r) a -> Eff r a -- | Run the Logger action in the base monad for every log line. runLogM :: Lifted m r => Logger m l -> Eff (LogM m l : r) a -> Eff r a instance Control.Eff.Log.LogMessage Data.ByteString.Internal.ByteString instance Control.Eff.Log.LogMessage [GHC.Types.Char] instance Control.Eff.Log.LogMessage Data.Text.Internal.Text instance (Control.Monad.Base.MonadBase m m, Control.Eff.Lift.Lifted m r, Control.Monad.Trans.Control.MonadBaseControl m (Control.Eff.Internal.Eff r)) => Control.Monad.Trans.Control.MonadBaseControl m (Control.Eff.Internal.Eff (Control.Eff.Log.LogM m l : r)) instance (Control.Monad.Base.MonadBase m m, Control.Eff.Lift.Lifted m r, Control.Monad.Trans.Control.MonadBaseControl m (Control.Eff.Internal.Eff r)) => Control.Monad.Trans.Control.MonadBaseControl m (Control.Eff.Internal.Eff (Control.Eff.Log.Log l : r))