Log seguro de thread assíncrono em C ++
Estou procurando uma maneira de fazer log assíncrono e seguro para threads no meu projeto C ++, se possível em um arquivo. Atualmente estou usandocerr
eclog
para a tarefa, mas como são síncronas, a execução é interrompida em breve sempre que algo é registrado. É um aplicativo relativamente pesado em gráficos, então esse tipo de coisa é bastante irritante.
O novo criador de logs deve usar E / S assíncrona para se livrar dessas pausas. A segurança de threads também seria desejável, pois pretendo adicionar alguns multithreading básicos em breve.
Eu considerei uma abordagem de um arquivo por thread, mas isso parecia tornar o gerenciamento dos logs um pesadelo. Alguma sugestão?