co-log-core-0.1.1: Composable Contravariant Comonadic Logging Library

Safe HaskellNone
LanguageHaskell2010

Colog.Core.IO

Contents

Synopsis

String actions

logStringStdout :: MonadIO m => LogAction m String Source #

Action that prints String to stdout.

>>> unLogAction logStringStdout "foo"
foo

logStringStderr :: MonadIO m => LogAction m String Source #

Action that prints String to stderr.

>>> unLogAction logStringStderr "foo"
foo

logStringHandle :: MonadIO m => Handle -> LogAction m String Source #

Action that prints String to Handle.

>>> unLogAction (logStringHandle stderr) "foo"
foo

withLogStringFile :: MonadIO m => FilePath -> (LogAction m String -> IO r) -> IO r Source #

Action that prints String to file. Instead of returning LogAction it's implemented in continuation-passing style because it's more efficient to open file only once at the start of the application and write to Handle instead of opening file each time we need to write to it.

Opens file in AppendMode.

>>> logger action = unLogAction action "foo"
>>> withLogStringFile "/dev/stdout" logger
foo

Show actions

logPrint :: forall a m. (Show a, MonadIO m) => LogAction m a Source #

Action that prints to stdout using Show.

>>> unLogAction logPrint 5
5

logPrintStderr :: forall a m. (Show a, MonadIO m) => LogAction m a Source #

Action that prints to stderr using Show.

>>> unLogAction logPrintStderr 5
5

logPrintHandle :: forall a m. (Show a, MonadIO m) => Handle -> LogAction m a Source #

Action that prints to a Handle using Show.

>>> unLogAction (logPrintHandle stderr) 5
5

withLogPrintFile :: forall a m r. (Show a, MonadIO m) => FilePath -> (LogAction m a -> IO r) -> IO r Source #

Action that prints to a file using Show. See withLogStringFile for details.

Various combinators

liftLogIO :: MonadIO m => LogAction IO msg -> LogAction m msg Source #

Lifts a LogAction over IO into a more general Monad.

>>> logToStdout = LogAction putStrLn
>>> unLogAction (liftLogIO logToStdout) "foo"
foo