Tracer Factory
A factory of Tracers of signal messages.
Each tracer is created for a single signal and should not be reused.
Implementations may choose to perform I/O operations (i.e. send traces via network) on close()
. It is expected in general that each call to trace results in some tracing data produced, however, implementations may ignore some signals.