我正在做一些關於Qt 5.0 Logging的研究,它似乎內置了用於日誌記錄的類。我無法找到一個例子。我找到了我認爲與此相關的課程。QT 5.0 - 內置記錄功能?
我可以看到大致如何創建從文檔的QMessageLogger對象,但我怎麼能建立一個日誌文件,並追加到它?
我正在做一些關於Qt 5.0 Logging的研究,它似乎內置了用於日誌記錄的類。我無法找到一個例子。我找到了我認爲與此相關的課程。QT 5.0 - 內置記錄功能?
我可以看到大致如何創建從文檔的QMessageLogger對象,但我怎麼能建立一個日誌文件,並追加到它?
默認情況下,使用qDebug(),qWarning()等將允許您將信息記錄到控制檯。
#include <QtDebug>
qDebug() << "Hello world!";
QMessageLogger旨在利用特殊C++宏(例如,功能,線路,文件)
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();
}
退房更好的例子和explanations here。
你是什麼意思的「追加到它」? – Huy
我的意思是登錄文件,我編輯的問題更清晰。謝謝您的幫助。 – rreeves