Safe Haskell | None |
---|---|
Language | Haskell98 |
Quick example of how to use this module:
import Control.Logging main = withStdoutLogging $ do log "This is a log message!" timedLog "This is a timed log message!" $ threadDelay 100000
- log :: Text -> IO ()
- log' :: MonadIO m => Text -> m ()
- logS :: Text -> Text -> IO ()
- logS' :: MonadIO m => Text -> Text -> m ()
- warn :: Text -> IO ()
- warn' :: MonadIO m => Text -> m ()
- warnS :: Text -> Text -> IO ()
- warnS' :: MonadIO m => Text -> Text -> m ()
- debug :: Text -> IO ()
- debug' :: MonadIO m => Text -> m ()
- debugS :: Text -> Text -> IO ()
- debugS' :: MonadIO m => Text -> Text -> m ()
- errorL :: Text -> a
- errorL' :: Text -> a
- errorSL :: Text -> Text -> a
- errorSL' :: Text -> Text -> a
- traceL :: Text -> a -> a
- traceL' :: Text -> a -> a
- traceSL :: Text -> Text -> a -> a
- traceSL' :: Text -> Text -> a -> a
- traceShowL :: Show a => a -> a1 -> a1
- traceShowL' :: Show a => a -> a1 -> a1
- traceShowSL :: Show a => Text -> a -> a1 -> a1
- traceShowSL' :: Show a => Text -> a -> a1 -> a1
- timedLog :: (MonadBaseControl IO m, MonadIO m) => Text -> m a -> m a
- timedLog' :: (MonadBaseControl IO m, MonadIO m) => Text -> m a -> m a
- timedLogS :: (MonadBaseControl IO m, MonadIO m) => Text -> Text -> m a -> m a
- timedLogS' :: (MonadBaseControl IO m, MonadIO m) => Text -> Text -> m a -> m a
- timedLogEnd :: (MonadBaseControl IO m, MonadIO m) => Text -> m a -> m a
- timedLogEnd' :: (MonadBaseControl IO m, MonadIO m) => Text -> m a -> m a
- timedLogEndS :: (MonadBaseControl IO m, MonadIO m) => Text -> Text -> m a -> m a
- timedLogEndS' :: (MonadBaseControl IO m, MonadIO m) => Text -> Text -> m a -> m a
- timedDebug :: (MonadBaseControl IO m, MonadIO m) => Text -> m a -> m a
- timedDebug' :: (MonadBaseControl IO m, MonadIO m) => Text -> m a -> m a
- timedDebugS :: (MonadBaseControl IO m, MonadIO m) => Text -> Text -> m a -> m a
- timedDebugS' :: (MonadBaseControl IO m, MonadIO m) => Text -> Text -> m a -> m a
- timedDebugEnd :: (MonadBaseControl IO m, MonadIO m) => Text -> m a -> m a
- timedDebugEnd' :: (MonadBaseControl IO m, MonadIO m) => Text -> m a -> m a
- timedDebugEndS :: (MonadBaseControl IO m, MonadIO m) => Text -> Text -> m a -> m a
- timedDebugEndS' :: (MonadBaseControl IO m, MonadIO m) => Text -> Text -> m a -> m a
- withStdoutLogging :: (MonadBaseControl IO m, MonadIO m) => m a -> m a
- withStderrLogging :: (MonadBaseControl IO m, MonadIO m) => m a -> m a
- withFileLogging :: (MonadBaseControl IO m, MonadIO m) => FilePath -> m a -> m a
- flushLog :: MonadIO m => m ()
- loggingLogger :: ToLogStr msg => LogLevel -> LogSource -> msg -> IO ()
- setLogLevel :: LogLevel -> IO ()
- setLogTimeFormat :: String -> IO ()
- setDebugSourceRegex :: String -> IO ()
- data LogLevel
Documentation
log' :: MonadIO m => Text -> m () Source
The apostrophe varients of the logging functions flush the log after each message.
A logging variant of error
which uses unsafePerformIO
to output a log
message before calling error
.
traceShowL :: Show a => a -> a1 -> a1 Source
traceShowL' :: Show a => a -> a1 -> a1 Source
traceShowSL :: Show a => Text -> a -> a1 -> a1 Source
traceShowSL' :: Show a => Text -> a -> a1 -> a1 Source
timedLog :: (MonadBaseControl IO m, MonadIO m) => Text -> m a -> m a Source
Output a logging message both before an action begins, and after it ends, reporting the total length of time. If an exception occurred, it is also reported.
timedLogS' :: (MonadBaseControl IO m, MonadIO m) => Text -> Text -> m a -> m a Source
timedLogEnd :: (MonadBaseControl IO m, MonadIO m) => Text -> m a -> m a Source
Like timedLog
, except that it does only logs when the action has
completed or failed after it is done.
timedLogEnd' :: (MonadBaseControl IO m, MonadIO m) => Text -> m a -> m a Source
timedLogEndS :: (MonadBaseControl IO m, MonadIO m) => Text -> Text -> m a -> m a Source
timedLogEndS' :: (MonadBaseControl IO m, MonadIO m) => Text -> Text -> m a -> m a Source
timedDebug :: (MonadBaseControl IO m, MonadIO m) => Text -> m a -> m a Source
A debug variant of timedLog
.
timedDebug' :: (MonadBaseControl IO m, MonadIO m) => Text -> m a -> m a Source
timedDebugS :: (MonadBaseControl IO m, MonadIO m) => Text -> Text -> m a -> m a Source
timedDebugS' :: (MonadBaseControl IO m, MonadIO m) => Text -> Text -> m a -> m a Source
timedDebugEnd :: (MonadBaseControl IO m, MonadIO m) => Text -> m a -> m a Source
timedDebugEnd' :: (MonadBaseControl IO m, MonadIO m) => Text -> m a -> m a Source
timedDebugEndS :: (MonadBaseControl IO m, MonadIO m) => Text -> Text -> m a -> m a Source
timedDebugEndS' :: (MonadBaseControl IO m, MonadIO m) => Text -> Text -> m a -> m a Source
withStdoutLogging :: (MonadBaseControl IO m, MonadIO m) => m a -> m a Source
This function, or withStderrLogging
, must be wrapped around whatever
region of your application intends to use logging. Typically it would be
wrapped around the body of main
.
withStderrLogging :: (MonadBaseControl IO m, MonadIO m) => m a -> m a Source
withFileLogging :: (MonadBaseControl IO m, MonadIO m) => FilePath -> m a -> m a Source
flushLog :: MonadIO m => m () Source
Flush all collected logging messages. This is automatically called by
withStdoutLogging
and withStderrLogging
when those blocks are exited
by whatever means.
loggingLogger :: ToLogStr msg => LogLevel -> LogSource -> msg -> IO () Source
setLogLevel :: LogLevel -> IO () Source
Set the verbosity level. Messages at our higher than this level are
displayed. It defaults to LevelDebug
.
setLogTimeFormat :: String -> IO () Source
Set the format used for log timestamps.
setDebugSourceRegex :: String -> IO () Source
When printing LevelDebug
messages, only display those matching the
given regexp applied to the Source parameter. Calls to debug
without a
source parameter are regarded as having a source of ""
.