【问题标题】:QT 5.0 - Built in Logging?QT 5.0 - 内置日志记录?
【发布时间】:2013-06-25 18:57:04
【问题描述】:

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

QMessageLogger

QMessageLogContext

我可以从文档中大致了解如何创建 QMessageLogger 对象,但是如何创建日志文件并附加到它?

【问题讨论】:

  • “附加到它”是什么意思?
  • 我的意思是登录到文件,我将问题编辑得更清楚。感谢您的帮助。

标签: c++ qt logging


【解决方案1】:

默认情况下,使用 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

【讨论】:

    猜你喜欢
    • 2010-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-02
    • 2013-09-11
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多