-- | Batteries-included public interface for the Hermod tracing system. -- -- A typical application wires up tracing in three steps: -- -- 1. __Define trace types__: for each domain-specific message type, write -- 'LogFormatting' (human\/machine rendering, metrics) and 'MetaTrace' -- (namespace, severity, documentation) instances. -- -- 2. __Construct backends__: call 'mkHermodTracer' (or 'mkHermodTracer'') -- with 'standardTracer', 'ekgTracer', and\/or 'forwardTracer' to build a -- 'Trace IO YourType'. -- -- 3. __Configure__: load a 'TraceConfig' with 'readConfiguration' and apply it -- with 'configureTracers'. Use 'checkTraceConfiguration' to validate the -- config against all known namespaces at startup. -- module Hermod.Tracing ( module X ) where -- Core API types and combinators (from hermod-tracing-api) import Hermod.Tracing.Types as X import Hermod.Tracing.Trace as X -- Backend constructors import Hermod.Tracing.Tracer.Composed as X import Hermod.Tracing.Tracer.DataPoint as X import Hermod.Tracing.Tracer.EKG as X import Hermod.Tracing.Tracer.Forward as X import Hermod.Tracing.Tracer.Standard as X -- Configuration: loading, parsing, applying, and checking import Hermod.Tracing.Configuration as X import Hermod.Tracing.ConfigurationParser as X import Hermod.Tracing.Consistency as X import Hermod.Tracing.FrequencyLimiter as X -- Output types produced by the backend pipeline -- (FormattedMessage, TraceObject, PreFormatted) import Hermod.Tracing.Formatter as X -- Utilities: showT, showTHex, showTReal, runInLoop import Hermod.Tracing.Utils as X -- Re-exports arrow/emit/squelch from contra-tracer for custom backend authors. -- traceWith, contramapM, nullTracer, Tracer are shadowed by this package's own versions. import Control.Tracer as X hiding (Tracer, contramapM, nullTracer, traceWith)