I agree, but I don't know how to avoid it - this is an ugly mix of C and C++ programming:
in order to send something to the main thread, you got to give uv_async_init() a function pointer, which means no non-static member functions of Console. Plus, this function (pointed to) has to access the previously created Console object.
The only good solution coming to my mind is making the log() etc. member functions static.