首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >QT 5.0 -内置日志?

QT 5.0 -内置日志?
EN

Stack Overflow用户
提问于 2013-06-26 02:57:04
回答 1查看 30.4K关注 0票数 23

我做了一些关于Qt5.0日志的研究,它似乎内置了用于日志的类。我很难找到一个例子。我已经在这里找到了我认为相关的类。

QMessageLogger

QMessageLogContext

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-26 03:20:50

默认情况下,使用qDebug()、qWarning()等将允许您将信息注销到控制台。

代码语言:javascript
运行
复制
#include <QtDebug>
qDebug() << "Hello world!";

QMessageLogger旨在利用特殊的C++宏(例如函数、行、文件)

代码语言:javascript
运行
复制
QMessageLogger(__FILE__, __LINE__, 0).debug() << "Hello world!";

在Qt5中,消息记录器是在后台使用的,因为qDebug()是一个宏,它最终将实例化QMessageLogger的一个实例。因此,我只使用常规的qDebug()。

QMessageLogContext包含我认为是“元数据”的内容,即调用它的qDebug()语句的文件、行号等。通常,如果您正在定义自己的QtMessageHandler (请参阅qInstallMessageHandler()),则需要关注日志上下文。

消息处理程序允许对日志记录机制进行更多控制-比如将日志记录信息发送到自定义日志服务器,甚至发送到文件。

正如Qt文档中所提供的,创建自定义消息处理程序很简单:

代码语言:javascript
运行
复制
void myMessageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg)
{
  std::cout << msg.toStdString();
}

查看更好的示例和explanations here

票数 45
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17305374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档