Safe Haskell | None |
---|---|
Language | Haskell2010 |
The LogWriter
type encapsulates an IO
action to write LogMessage
s.
Synopsis
- newtype LogWriter = MkLogWriter {
- runLogWriter :: LogMessage -> IO ()
- type LogWriterReader = Reader LogWriter
- localLogWriterReader :: forall e a. Member LogWriterReader e => (LogWriter -> LogWriter) -> Eff e a -> Eff e a
- askLogWriter :: Member LogWriterReader e => Eff e LogWriter
- runLogWriterReader :: LogWriter -> Eff (Reader LogWriter ': e) a -> Eff e a
- liftWriteLogMessage :: (Member LogWriterReader e, Lifted IO e) => LogMessage -> Eff e ()
- noOpLogWriter :: LogWriter
- filteringLogWriter :: LogPredicate -> LogWriter -> LogWriter
- mappingLogWriter :: (LogMessage -> LogMessage) -> LogWriter -> LogWriter
- mappingLogWriterIO :: (LogMessage -> IO LogMessage) -> LogWriter -> LogWriter
- ioHandleLogWriter :: Handle -> LogMessageRenderer Text -> LogWriter
- stdoutLogWriter :: LogMessageRenderer Text -> IO LogWriter
LogWriter
Definition
A function that takes a log message and returns an effect that logs the message.
MkLogWriter | |
|
LogWriter Reader Effect
localLogWriterReader :: forall e a. Member LogWriterReader e => (LogWriter -> LogWriter) -> Eff e a -> Eff e a Source #
Modify the current LogWriter
.
askLogWriter :: Member LogWriterReader e => Eff e LogWriter Source #
Get the current LogWriter
.
runLogWriterReader :: LogWriter -> Eff (Reader LogWriter ': e) a -> Eff e a Source #
Provide the LogWriter
Exposed for custom extensions, if in doubt use withLogging
.
LogWriter utilities
liftWriteLogMessage :: (Member LogWriterReader e, Lifted IO e) => LogMessage -> Eff e () Source #
Write a message using the LogWriter
found in the environment.
filteringLogWriter :: LogPredicate -> LogWriter -> LogWriter Source #
A LogWriter
that applies a predicate to the LogMessage
and delegates to
to the given writer of the predicate is satisfied.
mappingLogWriter :: (LogMessage -> LogMessage) -> LogWriter -> LogWriter Source #
A LogWriter
that applies a function to the LogMessage
and delegates the result to
to the given writer.
mappingLogWriterIO :: (LogMessage -> IO LogMessage) -> LogWriter -> LogWriter Source #
Like mappingLogWriter
allow the function that changes the LogMessage
to have effects.
ioHandleLogWriter :: Handle -> LogMessageRenderer Text -> LogWriter Source #
Append the LogMessage
to an Handle
after rendering it.
Since: 0.31.0
stdoutLogWriter :: LogMessageRenderer Text -> IO LogWriter Source #
Render a LogMessage
to stdout
.
This function will also set the BufferMode
of stdout
to LineBuffering
.
See ioHandleLogWriter
.
Since: 0.31.0