Остальное я не понял ничего
1. Чтобы не тормозить потоки записью, нужно сделать отдельный поток для записи
2. Этот поток должен принимать информацию для записи от других потоков
3. Этот поток должен записывать информацию в файл
4. Решение я понял должно быть примерно такое:
Есть две переменных по типу QStringList. Одна из этих переменных нужна для добавления информации (пункт 2), вторая для записи (пункт 3) - отсюда у нас 2 роли переменных (принятие информации и выгрузка в файл). Изначально переменная 1 служит для принятия, а переменная 2 для записи.
Когда поток логирования записал информацию из переменной 2, то он блокирует мьютекс, меняет роли у переменных и разблокирует мьютекс.
Когда другой поток хочет добавить информацию для записи, он блокирует мьютекс, добавляет данные в переменную с ролью «принятие информации» и разблокирует мьютекс
Надеюсь, сейчас более понятно объяснил свою идею