LoggerManager Class
class Visindigo::General::LoggerManagerLoggerManager是日志记录器管理器,用于管理全局日志对象并处理日志消息。. 详情...
| 头文件: | #include <General/LoggerManager.h> |
| 自以下版本: | Visindigo 0.13.0 |
- 所有成员列表(包含继承成员)
- LoggerManager 是该集合的一部分:VDebug日志系统子模块.
公开成员函数
(自 Visindigo 0.13.0 引入) | ~LoggerManager() |
(自 Visindigo 0.13.0 引入) void | finalSave() |
(自 Visindigo 0.13.0 引入) void | msgHandlerLog(Visindigo::General::LoggerMsgHandler *handler) |
(自 Visindigo 0.13.0 引入) void | setGlobalLogLevel(Visindigo::General::Logger::Level level) |
静态公开成员
(自 Visindigo 0.13.0 引入) Visindigo::General::LoggerManager * | getInstance() |
详细说明
VDebug是一种用于在Qt开发中与QDebug提供相似功能的日志管理。 它并不旨在取代QDebug,因为它比QDebug性能更差,但更灵活。 例如,您可以监听LoggerManager::logReceived信号自由的将 日志路由到别处。除此之外,VDebug默认同时输出到文件,不需单独 实现文件输出功能。
此类是VDebug的核心类,用于管理Logger实例并处理日志消息的输出。
VDebug和QDebug在结构上略有不同:
- QDebug使用QDebug类来承接日志消息,而VDebug则是LoggerMsgHandler类。
- QDebug实例可以使用QMessageLogger类获取,而VDebug则是通过Logger类获取。
- QMessageLogger使用不同的QMessageLoggingCategory构造QDebug来区分不同的日志命名空间, 而VDebug则是通过Logger类的实例来区分不同的日志命名空间。
性能与特性说明
在0.13.0之前的版本中,VDebug是重新转发到QDebug实现的输出,因此性能较差。
在0.13.0开发过程中,曾经被直接使用std::cout实现输出,但这在Android平台上导致 调试器看不到日志,并不实用。
现在的实现中,已经改用Qt未公开的函数qt_message_output来实现日志输出, 这使得VDebug的性能(至少在最后输出阶段)与QDebug相当。
成员函数文档
[noexcept, since Visindigo 0.13.0] LoggerManager::~LoggerManager()
析构函数
这个 function 从 Visindigo 0.13.0 开始支持。
[since Visindigo 0.13.0] void LoggerManager::finalSave()
将日志缓冲区的内容保存到日志文件中。
此函数强制将日志缓冲区的内容写入日志文件中。 通常情况下,日志会自动定期保存,但用户也可以手动调用此函数以确保日志被保存。
这个 function 从 Visindigo 0.13.0 开始支持。
[static, since Visindigo 0.13.0] Visindigo::General::LoggerManager *LoggerManager::getInstance()
获取LoggerManager单例对象的指针。
这是Visindigo单例类getInstance()函数的一个特例。其他单例类的getInstance()函数均会在实例不存在时创建它们。请注意区分。
这个 function 从 Visindigo 0.13.0 开始支持。
[since Visindigo 0.13.0] void LoggerManager::msgHandlerLog(Visindigo::General::LoggerMsgHandler *handler)
处理日志消息。 handler 指向LoggerMsgHandler对象的指针,包含了日志消息的相关信息。
此函数由LoggerMsgHandler对象在其析构函数中自动调用,用于将日志消息输出到控制台和日志文件中。
强烈不推荐用户手动调用此函数。
这个 function 从 Visindigo 0.13.0 开始支持。
[since Visindigo 0.13.0] void LoggerManager::setGlobalLogLevel(Visindigo::General::Logger::Level level)
设置全局日志级别阈值。 level 全局日志级别阈值,低于此级别的日志将不会被输出。
此函数允许用户动态调整全局日志级别阈值。
这个 function 从 Visindigo 0.13.0 开始支持。