both provide thread-safe output, but they are not compatible.
Trace's synchronization object is cerr, Log's sync object is cerr.stream (should say AppendStream?'s sync object), so use them at the same time would cause problem.
I found this issue when I write a syncprint providing Stdout interface, I copy the constructor code from Trace, but this mine syncprint would cause segment fault when use it with Log at the same time.
After I change mine syncprint's synchronization object from cerr to cerr.stream, things are ok.