Насколько я знаю, ни одна библиотека не сделает этого - это слишком сложно. Вы должны будете свернуть свой собственный, и вот идея, которую я только что имел, создать файл журнала для каждого потока, убедиться, что первый элемент в каждой записи является меткой времени, а затем объединить журналы после того, как запустить и отсортировать (по метке времени ), чтобы получить окончательный файл журнала.
Вы можете использовать некоторое локальное хранилище потока (скажем, FILE
обрабатывать AFAIK, что не удастся сохранить потоковый объект в локальном хранилище потока), найти этот дескриптор в каждой строке журнала и записать в это файл.
Вся эта сложность против блокировки мьютекса? Я не знаю требований к производительности вашего приложения, но если оно чувствительное - зачем вам регистрироваться (чрезмерно)? Подумайте о других способах получения необходимой информации без регистрации?
Еще одна вещь, которую следует учитывать, - это использовать мьютекс как можно меньше времени, т. Е. Сначала создать свою запись в журнале, а затем непосредственно перед записью в файл получить блокировку.