gpt4 book ai didi

c++ - QT 5.0 - 内置日志记录?

转载 作者:IT老高 更新时间:2023-10-28 22:08:32 24 4
gpt4 key购买 nike

我正在对 Qt 5.0 Logging 进行一些研究,它似乎已经内置了用于记录的类。我很难找到一个例子。我在这里找到了我认为相关的类(class)。

QMessageLogger

QMessageLogContext

我可以从文档中大致了解如何创建 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 .

关于c++ - QT 5.0 - 内置日志记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17305374/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com