我正在对 Qt 5.0 Logging 进行一些研究,它似乎已经内置了用于记录的类。我很难找到一个例子。我在这里找到了我认为相关的课程。
我可以从文档中大致了解如何创建 QMessageLogger 对象,但是如何创建日志文件并附加到它?
我正在对 Qt 5.0 Logging 进行一些研究,它似乎已经内置了用于记录的类。我很难找到一个例子。我在这里找到了我认为相关的课程。
我可以从文档中大致了解如何创建 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();
}
在此处查看更好的示例和解释。