iohk-monitoring-0.1.10.1: logging, benchmarking and monitoring framework
Safe HaskellNone
LanguageHaskell2010

Cardano.BM.Data.Tracer

Synopsis

Documentation

newtype Tracer (m :: Type -> Type) a Source #

example: simply output a message on the console

let logTrace = traceWith $ showTracing $ stdoutTracer
in  logTrace "hello world"

example: calling a function and passing in a Tracer

example1 :: IO ()
example1 = do
    let logTrace a = traceWith (showTracing (contramap ("Debug: " ++) stdoutTracer)) a
    void $ callFun1 logTrace
callFun1 :: (String -> IO ()) -> IO Int
callFun1 logTrace = do
    logTrace "in function 1"
    return 42

runTracer evaluates a Tracer (i.e. consumes its argument)

Constructors

Tracer 

Fields

Instances

Instances details
Contravariant (Tracer m) 
Instance details

Defined in Control.Tracer

Methods

contramap :: (a -> b) -> Tracer m b -> Tracer m a #

(>$) :: b -> Tracer m b -> Tracer m a #

Applicative m => Divisible (Tracer m) Source # 
Instance details

Defined in Cardano.BM.Tracer

Methods

divide :: (a -> (b, c)) -> Tracer m b -> Tracer m c -> Tracer m a Source #

conquer :: Tracer m a Source #

Applicative m => Decidable (Tracer m) Source # 
Instance details

Defined in Cardano.BM.Tracer

Methods

lose :: (a -> Void) -> Tracer m a Source #

choose :: (a -> Either b c) -> Tracer m b -> Tracer m c -> Tracer m a Source #

Applicative m => Semigroup (Tracer m s) 
Instance details

Defined in Control.Tracer

Methods

(<>) :: Tracer m s -> Tracer m s -> Tracer m s #

sconcat :: NonEmpty (Tracer m s) -> Tracer m s #

stimes :: Integral b => b -> Tracer m s -> Tracer m s #

Applicative m => Monoid (Tracer m s) 
Instance details

Defined in Control.Tracer

Methods

mempty :: Tracer m s #

mappend :: Tracer m s -> Tracer m s -> Tracer m s #

mconcat :: [Tracer m s] -> Tracer m s #

class (Monad m, HasPrivacyAnnotation b, HasSeverityAnnotation b) => Transformable a m b where Source #

Minimal complete definition

Nothing

Instances

Instances details
Transformable a IO Float Source # 
Instance details

Defined in Cardano.BM.Data.Tracer

Transformable a IO Double Source # 
Instance details

Defined in Cardano.BM.Data.Tracer

Transformable a IO Word64 Source # 
Instance details

Defined in Cardano.BM.Data.Tracer

Transformable a IO Integer Source # 
Instance details

Defined in Cardano.BM.Data.Tracer

Transformable a IO Int Source # 
Instance details

Defined in Cardano.BM.Data.Tracer

Transformable String IO String Source # 
Instance details

Defined in Cardano.BM.Data.Tracer

Transformable String IO Text Source # 
Instance details

Defined in Cardano.BM.Data.Tracer

Transformable Text IO String Source # 
Instance details

Defined in Cardano.BM.Data.Tracer

Transformable Text IO Text Source # 
Instance details

Defined in Cardano.BM.Data.Tracer

(Monad m, Transformable t m a) => Transformable t m (WithPrivacyAnnotation a) Source # 
Instance details

Defined in Cardano.BM.Data.Tracer

(Monad m, Transformable t m a) => Transformable t m (WithSeverity a) Source # 
Instance details

Defined in Cardano.BM.Data.Tracer

class Monad m => ToLogObject m where Source #

Minimal complete definition

toLogObject, toLogObject'

Methods

toLogObject :: (ToObject a, Transformable a m b) => Trace m a -> Tracer m b Source #

toLogObject' :: (ToObject a, Transformable a m b) => TracingVerbosity -> Trace m a -> Tracer m b Source #

toLogObjectVerbose :: (ToObject a, Transformable a m b) => Trace m a -> Tracer m b Source #

default toLogObjectVerbose :: (ToObject a, Transformable a m b) => Trace m a -> Tracer m b Source #

toLogObjectMinimal :: (ToObject a, Transformable a m b) => Trace m a -> Tracer m b Source #

default toLogObjectMinimal :: (ToObject a, Transformable a m b) => Trace m a -> Tracer m b Source #

class ToObject a where Source #

Minimal complete definition

Nothing

class HasTextFormatter a where Source #

Minimal complete definition

Nothing

Methods

formatText :: a -> Object -> Text Source #

default formatText :: a -> Object -> Text Source #

class HasSeverityAnnotation a where Source #

Minimal complete definition

Nothing

class HasPrivacyAnnotation a where Source #

Minimal complete definition

Nothing

contramap :: Contravariant f => (a -> b) -> f b -> f a #

mkObject :: ToObject a => [(Text, a)] -> HashMap Text a Source #

traceWith :: Tracer m a -> a -> m () Source #

trace an observable value with a Tracer

tracer transformers

natTracer :: (forall x. m x -> n x) -> Tracer m s -> Tracer n s Source #

natural transformation from monad m to monad n.

nullTracer :: forall (m :: Type -> Type) a. Applicative m => Tracer m a Source #

this Tracer forgets about all arguments

stdoutTracer :: forall (m :: Type -> Type). MonadIO m => Tracer m String Source #

Output a traced String to stdout

debugTracer :: forall (m :: Type -> Type). Applicative m => Tracer m String Source #

Output a traced String using Trace

showTracing :: forall a (m :: Type -> Type). Show a => Tracer m String -> Tracer m a Source #

transform a traced value to a showable instance.

conditional tracing

condTracing :: forall (m :: Type -> Type) a. Monad m => (a -> Bool) -> Tracer m a -> Tracer m a Source #

conditionally trace an observable given the evaluation of a predicate.

condTracingM :: Monad m => m (a -> Bool) -> Tracer m a -> Tracer m a Source #

conditionally trace an observable given the evaluation of a predicate in a monadic context.

severity transformers

filterSeverity :: forall m a. (Monad m, HasSeverityAnnotation a) => (a -> m Severity) -> Tracer m a -> Tracer m a Source #

privacy annotation transformers