Safe Haskell | None |
---|

A pure implementation of MonadLog using MonadWriter

## Synopsis

- data WriterLogT m a
- type WriterLog = WriterLogT Identity
- runWriterLogT :: WriterLogT m a -> m (a, LogSeq)
- runWriterLog :: WriterLog a -> (a, LogSeq)
- execWriterLogT :: MonadLog m => WriterLogT m a -> m a
- dumpLogSeq :: MonadLog m => LogSeq -> m ()
- execWriterLog :: MonadLog m => WriterLog a -> m a

# The data type of the monad transformer

data WriterLogT m a Source #

A monad transformer that adds pure logging capability.

## Instances

MonadTrans WriterLogT # | |

Defined in Ganeti.Logging.WriterLog lift :: Monad m => m a -> WriterLogT m a | |

MonadTransControl WriterLogT # | |

Defined in Ganeti.Logging.WriterLog type StT WriterLogT a :: Type liftWith :: Monad m => (Run WriterLogT -> m a) -> WriterLogT m a restoreT :: Monad m => m (StT WriterLogT a) -> WriterLogT m a | |

MonadBase IO m => MonadBase IO (WriterLogT m) # | |

Defined in Ganeti.Logging.WriterLog liftBase :: IO α -> WriterLogT m α | |

MonadBaseControl IO m => MonadBaseControl IO (WriterLogT m) # | |

Defined in Ganeti.Logging.WriterLog type StM (WriterLogT m) a :: Type liftBaseWith :: (RunInBase (WriterLogT m) IO -> IO a) -> WriterLogT m a restoreM :: StM (WriterLogT m) a -> WriterLogT m a | |

Monad m => Monad (WriterLogT m) # | |

Defined in Ganeti.Logging.WriterLog (>>=) :: WriterLogT m a -> (a -> WriterLogT m b) -> WriterLogT m b (>>) :: WriterLogT m a -> WriterLogT m b -> WriterLogT m b return :: a -> WriterLogT m a fail :: String -> WriterLogT m a | |

Functor m => Functor (WriterLogT m) # | |

Defined in Ganeti.Logging.WriterLog fmap :: (a -> b) -> WriterLogT m a -> WriterLogT m b (<$) :: a -> WriterLogT m b -> WriterLogT m a | |

Applicative m => Applicative (WriterLogT m) # | |

Defined in Ganeti.Logging.WriterLog pure :: a -> WriterLogT m a (<*>) :: WriterLogT m (a -> b) -> WriterLogT m a -> WriterLogT m b liftA2 :: (a -> b -> c) -> WriterLogT m a -> WriterLogT m b -> WriterLogT m c (*>) :: WriterLogT m a -> WriterLogT m b -> WriterLogT m b (<*) :: WriterLogT m a -> WriterLogT m b -> WriterLogT m a | |

Alternative m => Alternative (WriterLogT m) # | |

Defined in Ganeti.Logging.WriterLog empty :: WriterLogT m a (<|>) :: WriterLogT m a -> WriterLogT m a -> WriterLogT m a some :: WriterLogT m a -> WriterLogT m [a] many :: WriterLogT m a -> WriterLogT m [a] | |

MonadPlus m => MonadPlus (WriterLogT m) # | |

Defined in Ganeti.Logging.WriterLog mzero :: WriterLogT m a mplus :: WriterLogT m a -> WriterLogT m a -> WriterLogT m a | |

MonadIO m => MonadIO (WriterLogT m) # | |

Defined in Ganeti.Logging.WriterLog liftIO :: IO a -> WriterLogT m a | |

Monad m => MonadLog (WriterLogT m) # | |

Defined in Ganeti.Logging.WriterLog logAt :: Priority -> String -> WriterLogT m () Source # | |

type StT WriterLogT a # | |

Defined in Ganeti.Logging.WriterLog type StT WriterLogT a | |

type StM (WriterLogT m) a # | |

Defined in Ganeti.Logging.WriterLog |

type WriterLog = WriterLogT Identity Source #

runWriterLogT :: WriterLogT m a -> m (a, LogSeq) Source #

runWriterLog :: WriterLog a -> (a, LogSeq) Source #

execWriterLogT :: MonadLog m => WriterLogT m a -> m a Source #

Runs a `WriterLogT`

, and when it finishes, resends all log messages
to the underlying monad that implements `MonadLog`

.

This can be used to delay logging messages, by accumulating them
in `WriterLogT`

, and resending them at the end to the underlying monad.

dumpLogSeq :: MonadLog m => LogSeq -> m () Source #

Sends all log messages to the a monad that implements `MonadLog`

.