Doing multi-threading stuff, I couldn't live without logging. For logging in C++, I use the templog library. It allows several severities (how bad is it?) times multiple log targets (who might be interested in it?) combine with as many filtering log sinks (where to write it to?) as you want, so you don't get drowned in noise. It goes a long way towards efficiency, employing template-meta stuff to help the compiler eliminating superfluous code while not falling into the assert(do_something_important())
trap.
Also, it's small enough (I think it's below 1kLoC spread over half a dozen headers) and comes with the permissive boost license so that you don't depend on the creators to not to let the ball drop. If they do -- you can just maintain it yourself.
I only wish the guys would finally turn that branch the current code resides on into the new trunk.