The code base is currently using simple logger calls to capture system output. This works well for general system use, but does not allow processing flow to be analyzed on a per-thread basis and does not allow for pluggable options for storing the data in non-log formats. One option would be to create a custom logger plugin, but it would not be very flexible. Instead, it makes sense to create a "Tracer" interface and log to it, with the understanding that it may be writing to a log or capturing the data in some other format. The level of abstraction will add a lot of power in pluggable on-the-fly debugging.