QT 5.0-内置日志记录
QT 5.0 - Built in Logging?
我对Qt 5.0日志进行了一些研究,它似乎已经内置了日志类。我很难找到一个例子。我在这里找到了我认为相关的课程。
Q消息记录器
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();
}
在这里查看更好的示例和解释。
相关文章:
- 如何实现具有多个平台__FILE__和__LINE__信息的 C/C++ 可变参数日志记录宏?
- C++ 中混合二进制/文本日志记录的最佳做法
- 轻松日志记录++如何避免多个初始化
- 使用字符串流加速 std::cout 日志记录
- 我的游戏引擎的 spdlog 日志记录出现奇怪的"unresolved external symbol"错误
- 使用 #define 进行跟踪日志记录以避免性能问题
- 如何在代码中启用/禁用 spdlog 日志记录?
- 我正在尝试用 c++ 制作一个日志记录框架,但信息没有传递给记录器的子组件,我做错了什么?
- 使用 Python、ROS 和 C++ 进行日志记录
- C++日志记录类实例标识符
- 如何在C++中重载<<线程安全日志记录的运算符?
- 在 C++17 中将无限参数传递给日志记录函数
- 配置 log4cpp 日志记录级别优先级
- 如何使用 Boost V2 1.70 日志记录库在第一个索引(例如 logtrail01.txt)保留最新的日志文件名?
- 如何将日志记录写入Visual Studio输出窗口?
- 使用现有日志记录库 (C++) 限制日志大小
- "正在初始化":无法从"事件日志记录 *"转换为"事件日志记录 []"
- 提升日志记录text_file_backend没有wchar_t版本?
- 多线程应用程序中的独立日志记录
- C++类似cout的函数,将数据写入文件(日志记录)