Ответ 1
По умолчанию с помощью qDebug() qWarning() и т.д. позволит вам регистрировать информацию на консоли.
#include <QtDebug>
qDebug() << "Hello world!";
QMessageLogger предназначен для использования специальных макросов С++ (например, функция, строка, файл)
QMessageLogger(__FILE__, __LINE__, 0).debug() << "Hello world!";
В Qt5 регистратор сообщений используется за кулисами, поскольку qDebug() - это макрос, который в конечном итоге создаст экземпляр QMessageLogger. Поэтому я просто использую обычный qDebug().
QMessageLogContext содержит то, что я считаю "метаданные", т.е. файл, номер строки и т.д., из которого вызывается оператор qDebug(). Обычно вы занимаетесь журнальным контекстом, если вы определяете свой собственный QtMessageHandler (см. QInstallMessageHandler()).
Обработчик сообщений позволяет больше контролировать механизм ведения журнала - например, отправлять информацию о регистрации на пользовательский сервер ведения журнала или даже в файл.
Как указано в документации Qt, создание специального обработчика сообщений прост:
void myMessageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg)
{
std::cout << msg.toStdString();
}
Ознакомьтесь с лучшими примерами и объяснения здесь.