Right now, if someone using the Java API wants to just collect all trace output in a single string, or change the command in the trace output, they essentially need to create their own trace mechanism. This should not be necessary. Built-in trace debuggers should exist that can be easily overridden to provide added functionality without the need to reimplement the whole tracer.
Similarly, logging should be more easy to override by java API users to provided added functionality without needing to duplicate much of the code.