time-warp-0.1.1.2: Distributed systems execution emulation

Copyright(c) Serokell, 2016
LicenseGPL-3 (see the file LICENSE)
MaintainerSerokell <hi@serokell.io>
Stabilityexperimental
PortabilityPOSIX, GHC
Safe HaskellNone
LanguageHaskell2010

Control.TimeWarp.Logging

Contents

Description

Logging functionality. This module is wrapper over hslogger, which allows to keep logger name in monadic context. Messages are colored depending on used serverity.

Synopsis

Documentation

data Severity Source #

This type is intended to be used as command line option which specifies which messages to print.

Constructors

Debug 
Info 
Warning 
Error 

Instances

Eq Severity Source # 
Read Severity Source # 
Show Severity Source # 
Generic Severity Source # 

Associated Types

type Rep Severity :: * -> * #

Methods

from :: Severity -> Rep Severity x #

to :: Rep Severity x -> Severity #

type Rep Severity Source # 
type Rep Severity = D1 (MetaData "Severity" "Control.TimeWarp.Logging" "time-warp-0.1.1.2-85teWrozvjUJjFEayg7hld" False) ((:+:) ((:+:) (C1 (MetaCons "Debug" PrefixI False) U1) (C1 (MetaCons "Info" PrefixI False) U1)) ((:+:) (C1 (MetaCons "Warning" PrefixI False) U1) (C1 (MetaCons "Error" PrefixI False) U1)))

initLogging :: [LoggerName] -> Severity -> IO () Source #

Initiates specified loggers, and sets severity of root logger's handler to Debug

initLoggerByName :: Severity -> LoggerName -> IO () Source #

Turns logger with specified name on. All messages are printed to stdout, moreover messages with at least Error severity are printed to stderr.

newtype LoggerName Source #

Logger name to keep in context.

Constructors

LoggerName 

Fields

Remove boilerplate

class WithNamedLogger m where Source #

This type class exists to remove boilerplate logging by adding the logger's name to the context in each module.

Minimal complete definition

getLoggerName, modifyLoggerName

Methods

getLoggerName :: m LoggerName Source #

Extract logger name from context

modifyLoggerName :: (LoggerName -> LoggerName) -> m a -> m a Source #

Change logger name in context

setLoggerName :: WithNamedLogger m => LoggerName -> m a -> m a Source #

Set logger name in context.

newtype LoggerNameBox m a Source #

Default implementation of WithNamedLogger.

Instances

MonadTrans LoggerNameBox Source # 

Methods

lift :: Monad m => m a -> LoggerNameBox m a #

MonadState s m => MonadState s (LoggerNameBox m) Source # 

Methods

get :: LoggerNameBox m s #

put :: s -> LoggerNameBox m () #

state :: (s -> (a, s)) -> LoggerNameBox m a #

MonadReader r m => MonadReader r (LoggerNameBox m) Source # 

Methods

ask :: LoggerNameBox m r #

local :: (r -> r) -> LoggerNameBox m a -> LoggerNameBox m a #

reader :: (r -> a) -> LoggerNameBox m a #

Monad m => Monad (LoggerNameBox m) Source # 

Methods

(>>=) :: LoggerNameBox m a -> (a -> LoggerNameBox m b) -> LoggerNameBox m b #

(>>) :: LoggerNameBox m a -> LoggerNameBox m b -> LoggerNameBox m b #

return :: a -> LoggerNameBox m a #

fail :: String -> LoggerNameBox m a #

Functor m => Functor (LoggerNameBox m) Source # 

Methods

fmap :: (a -> b) -> LoggerNameBox m a -> LoggerNameBox m b #

(<$) :: a -> LoggerNameBox m b -> LoggerNameBox m a #

Applicative m => Applicative (LoggerNameBox m) Source # 

Methods

pure :: a -> LoggerNameBox m a #

(<*>) :: LoggerNameBox m (a -> b) -> LoggerNameBox m a -> LoggerNameBox m b #

(*>) :: LoggerNameBox m a -> LoggerNameBox m b -> LoggerNameBox m b #

(<*) :: LoggerNameBox m a -> LoggerNameBox m b -> LoggerNameBox m a #

MonadThrow m => MonadThrow (LoggerNameBox m) Source # 

Methods

throwM :: Exception e => e -> LoggerNameBox m a #

MonadIO m => MonadIO (LoggerNameBox m) Source # 

Methods

liftIO :: IO a -> LoggerNameBox m a #

MonadCatch m => MonadCatch (LoggerNameBox m) Source # 

Methods

catch :: Exception e => LoggerNameBox m a -> (e -> LoggerNameBox m a) -> LoggerNameBox m a #

MonadMask m => MonadMask (LoggerNameBox m) Source # 

Methods

mask :: ((forall a. LoggerNameBox m a -> LoggerNameBox m a) -> LoggerNameBox m b) -> LoggerNameBox m b #

uninterruptibleMask :: ((forall a. LoggerNameBox m a -> LoggerNameBox m a) -> LoggerNameBox m b) -> LoggerNameBox m b #

Monad m => WithNamedLogger (LoggerNameBox m) Source # 
MonadTimed m => MonadTimed (LoggerNameBox m) Source # 
MonadRpc m => MonadRpc (LoggerNameBox m) Source # 
type ThreadId (LoggerNameBox m) Source # 

usingLoggerName :: LoggerName -> LoggerNameBox m a -> m a Source #

Runs a LoggerNameBox with specified initial LoggerName.

Logging functions

logDebug :: (WithNamedLogger m, MonadIO m) => Text -> m () Source #

Shortcut for logMessage to use according severity.

logError :: (WithNamedLogger m, MonadIO m) => Text -> m () Source #

Shortcut for logMessage to use according severity.

logInfo :: (WithNamedLogger m, MonadIO m) => Text -> m () Source #

Shortcut for logMessage to use according severity.

logWarning :: (WithNamedLogger m, MonadIO m) => Text -> m () Source #

Shortcut for logMessage to use according severity.

logMessage :: (WithNamedLogger m, MonadIO m) => Severity -> Text -> m () Source #

Logs message with specified severity using logger name in context.