title: Asynchronous thread-safe logging in C++
body: <p>I'm looking for a way to do asynchronous and thread-safe logging in my C++ project, if possible to one file. I'm currently using <code>cerr</code> and <code>clog</code> for the task, but since they are synchronous, execution shortly pauses every time something is logged. It's a relatively graphics-heavy app, so this kind of thing is quite annoying.</p>
  
  <p>The new logger should use asynchronous I/O to get rid of these pauses. Thread-safety would also be desirable as I intend to add some basic multithreading soon.</p>
  
  <p>I considered a one-file-per-thread approach, but that seemed like it would make managing the logs a nightmare. Any suggestions?</p>