в текстовый стрим?
Мне нравится как он реализует преобразование std контейнеров и их отображение, QTextStream так не умеет, почемуто.
Перенаправление qDebug мне не подходит.
А изобретать колесо повторно самому не хочется 😊
Самостоятельно такой myDebug пишется минут 10. Я для одного проекта делал такое себе
Я делал перенаправление. Форматирование использовал стандартный кутешный const QString msg = qFormatLogMessage(type, context, message); QTextStream stream(&file); stream.setCodec("UTF-8"); stream.setGenerateByteOrderMark(true); stream << msg << endl;
🤔 ок благодарю за ответ у меня просто логика логирования чуть сложнее, там глобальное перенаправление не очень подходит для всего приложения всё должно выводиться в терминал, как при штатном использовании qDebug но для одного метода цепочки сложных расчётов нужно выводить все данные и в терминал, и в текстовый стрим 🤔 хотел отделаться "малой кровью" (заюзав что-нибудь стандратное, если есть) при преобразовании контейнеров/структур и тд в текстовый стрим
Можно так из дебага в строку. А дальше со строкой делай что хочешь QVector<int> v; v.append(1); v.append(3); v.append(8); QByteArray arrayDebug; QBuffer buffer(&arrayDebug); buffer.open(QBuffer::ReadWrite); QDebug myDebug(&buffer); myDebug << v; buffer.close(); QString resultStr = buffer.buffer(); qDebug() << resultStr;
так можно специальный контекст завести для этого и в том же перехватчике отладочных сообщений по контексту стримить в файл
Обсуждают сегодня