можно попробовать паковать все в словарь, список, или строку с особыми разделителями
Паковать тоже пробовал (и наблюдал как это делают другие
)
Лучше взять какой то лог проги, и посмотреть как это логируется. У сисадминов посмотреть и проанализировать)
Это мало поможет т.к. UI сисадминов не волнует.
Для отработки простых (стандартных) ошибок я бы предложил такой вызов
C++ (Qt)
bool SetLastError( const QString & txt, int errorID = ERR_ANY, int errorClass = ERR_CLASS_FATAL );
txt - все понятно
errorID - информация для вызывающего
errorClass - используется для установки типа алерта, иконки и.т.п. (общих атрибутов)
Это покроет многие (простые) запросы расчетной части, но не все. Для запросов типа Yes/No/Cancel - др. ф-ция. Согласен что обобщать больше неэффективно - проще делать "прокладку" для каждого случая которых остается относительно немного. В общем, работы хватает
Заметим что слот/сигнал в таких случаях нехорош.