Copyright | (c) 2018-2019 Kowainik |
---|---|
License | MPL-2.0 |
Maintainer | Kowainik <xrom.xkov@gmail.com> |
Safe Haskell | None |
Language | Haskell2010 |
Colog.Monad
Description
Core of the mtl
implementation.
Synopsis
- newtype LoggerT msg m a = LoggerT {
- runLoggerT :: ReaderT (LogAction (LoggerT msg m) msg) m a
- type WithLog env msg m = (MonadReader env m, HasLog env msg m, HasCallStack)
- logMsg :: forall msg env m. WithLog env msg m => msg -> m ()
- logMsgs :: forall msg env f m. (Foldable f, WithLog env msg m) => f msg -> m ()
- withLog :: WithLog env msg m => (LogAction m msg -> LogAction m msg) -> m a -> m a
- liftLogAction :: (Monad m, MonadTrans t) => LogAction m msg -> LogAction (t m) msg
- usingLoggerT :: Monad m => LogAction m msg -> LoggerT msg m a -> m a
Documentation
newtype
wrapper ReaderT
that keeps LogAction
in its context.
Constructors
LoggerT | |
Fields
|
Instances
MonadTrans (LoggerT msg) # | |
Defined in Colog.Monad | |
Monad m => Monad (LoggerT msg m) # | |
Functor m => Functor (LoggerT msg m) # | |
Applicative m => Applicative (LoggerT msg m) # | |
Defined in Colog.Monad | |
MonadIO m => MonadIO (LoggerT msg m) # | |
Defined in Colog.Monad | |
Monad m => MonadReader (LogAction (LoggerT msg m) msg) (LoggerT msg m) # | |
logMsgs :: forall msg env f m. (Foldable f, WithLog env msg m) => f msg -> m () #
Logs multiple messages.
liftLogAction :: (Monad m, MonadTrans t) => LogAction m msg -> LogAction (t m) msg #
usingLoggerT :: Monad m => LogAction m msg -> LoggerT msg m a -> m a #
Runner for LoggerT
monad. Let's consider one simple example of monadic
action you have:
app ::WithLog
envString
m => m () app = dologMsg
"Starting application..."withLog
(cmap
("app:" ++)) $ dologMsg
"Application started."logMsg
"Application finished."
You can use the following way of running such example:
usingLoggerT
(LogAction
putStrLn
) app
And you will see this output:
Starting application... app:Application started. app:Application finished.