Изначально базовую архитектуру писал я. Основная форма, есть слот:
log(...)
Через него делается логгирование всех дочерних классов и тредов. Тип события, текст, цвет. Классика, проверенная временем. Но чувство прекрасного программиста возмутилось и переименовало слот, сделав из них два.
writeInfo(...)
writeInfoLn(...)
Про то, что необходимо переименовать также соответствующий connect(...) он забыл. Ну а чтобы совсем без палева, собственные классы были связаны с собственными слотами. Итого, в идеальных условиях оно работает (УМВР), если же базовый класс докладывает, что что-то пошло не так, в лог это не попадает. Я молчу про то, что эксепшны вообще не обернуты и любая ошибка может привести к крашу всей системы...
Мораль простая - не лезь улучшать работающую систему.