Yayin Story Studio logo Yayin Story Studio 项目文档
回到主页 用户手册

LoggerMsgHandler Class

class Visindigo::General::LoggerMsgHandler

LoggerMsgHandler是日志消息处理器,用于承接日志消息并将其传递给LoggerManager进行处理。. 详情...

头文件: #include <General/LoggerMsgHandler.h>
自以下版本: Visindigo 0.13.0

公开成员函数

(自 Visindigo 0.13.0 引入) ~LoggerMsgHandler()
(自 Visindigo 0.13.0 引入) void fromString(const QString &str)
(自 Visindigo 0.13.0 引入) Visindigo::General::Logger::Level getLevel()
(自 Visindigo 0.13.0 引入) Visindigo::General::Logger *getLogger()
(自 Visindigo 0.13.0 引入) QString getMessage()
(自 Visindigo 0.13.0 引入) Visindigo::General::LogMetaData getMetaData()
(自 Visindigo 0.13.0 引入) QList<Visindigo::General::StacktraceFrame> getStacktrace()
(自 Visindigo 0.13.0 引入) Visindigo::General::LoggerMsgHandler &operator<<(QList<QObject *> qobject_list)
(自 Visindigo 0.13.0 引入) Visindigo::General::LoggerMsgHandler &operator<<(QList<T> any_list)
(自 Visindigo 0.13.0 引入) Visindigo::General::LoggerMsgHandler &operator<<(QMap<QString, QObject *> pointer_map)
(自 Visindigo 0.13.0 引入) Visindigo::General::LoggerMsgHandler &operator<<(QMap<QString, T> any_map)
(自 Visindigo 0.13.0 引入) Visindigo::General::LoggerMsgHandler &operator<<(QObject *pointer)
(自 Visindigo 0.13.0 引入) Visindigo::General::LoggerMsgHandler &operator<<(T type)
(自 Visindigo 0.13.0 引入) Visindigo::General::LoggerMsgHandler &operator<<(bool b)
(自 Visindigo 0.13.0 引入) Visindigo::General::LoggerMsgHandler &operator<<(const QByteArray &byteArray)
(自 Visindigo 0.13.0 引入) Visindigo::General::LoggerMsgHandler &operator<<(const QList<Visindigo::General::StacktraceFrame> &stacktrace)
(自 Visindigo 0.13.0 引入) Visindigo::General::LoggerMsgHandler &operator<<(const QString &str)
(自 Visindigo 0.13.0 引入) Visindigo::General::LoggerMsgHandler &operator<<(const QStringList &strList)
(自 Visindigo 0.13.0 引入) Visindigo::General::LoggerMsgHandler &operator<<(const Visindigo::General::LogMetaData &metaData)
(自 Visindigo 0.13.0 引入) Visindigo::General::LoggerMsgHandler &operator<<(const char *str)
(自 Visindigo 0.13.0 引入) Visindigo::General::LoggerMsgHandler &operator<<(double num)
(自 Visindigo 0.13.0 引入) Visindigo::General::LoggerMsgHandler &operator<<(float num)
(自 Visindigo 0.13.0 引入) Visindigo::General::LoggerMsgHandler &operator<<(qint16 num)
(自 Visindigo 0.13.0 引入) Visindigo::General::LoggerMsgHandler &operator<<(qint32 num)
(自 Visindigo 0.13.0 引入) Visindigo::General::LoggerMsgHandler &operator<<(qint64 num)
(自 Visindigo 0.13.0 引入) Visindigo::General::LoggerMsgHandler &operator<<(qint8 num)
(自 Visindigo 0.13.0 引入) Visindigo::General::LoggerMsgHandler &operator<<(quint16 num)
(自 Visindigo 0.13.0 引入) Visindigo::General::LoggerMsgHandler &operator<<(quint32 num)
(自 Visindigo 0.13.0 引入) Visindigo::General::LoggerMsgHandler &operator<<(quint64 num)
(自 Visindigo 0.13.0 引入) Visindigo::General::LoggerMsgHandler &operator<<(quint8 num)

受保护成员函数

(自 Visindigo 0.13.0 引入) LoggerMsgHandler(Visindigo::General::Logger *who, Visindigo::General::Logger::Level level)

详细说明

LoggerMsgHandler类用于承接日志消息,并在析构时将其传递给LoggerManager进行处理。 这个设计是因为,LoggerMsgHandler的大部分使用场景下,应该被创建为一个纯右值(或叫它将亡值), 即一行内没有将被赋给左值的临时对象。因此,我们可以利用其析构函数在对象生命周期结束时 自动将日志消息传递给LoggerManager进行处理。如果用户有什么延迟输出日志的需求,可以 自行保存到左值中并在适当的时候销毁它。(不推荐这么做,但可能会很有意思。)

用户无需直接创建LoggerMsgHandler对象,而是通过Logger类提供的宏来间接创建它们。

此类利用模板实现了大多数常用数据类型的日志消息承接功能,包括基本数据类型、QString、 符合一定要求的QListQMap等。用户也可以通过继承Printable概念来实现自定义类型的日志消息承接功能。

概念 Printable

VDebug使用了C++20提供的concept特性定义了一个Printable概念,任何类型只要实现了toString()方法并返回 QString类型的结果,就可以被视为符合Printable概念的类型,从而可以被LoggerMsgHandler承接。

Printable不在LoggerMsgHandler类内定义,这是个处于Visindigo::General命名空间内的独立概念,用户可以在任何需要的地方使用它来约束类型。 它定义如下:

template <typename T> concept Printable = requires(T t) {
        { t.toString() }->::std::same_as<QString>;
};

成员函数文档

[protected, since Visindigo 0.13.0] LoggerMsgHandler::LoggerMsgHandler(Visindigo::General::Logger *who, Visindigo::General::Logger::Level level)

构造LoggerMsgHandler实例。 who 指向创建此LoggerMsgHandler对象的Logger对象的指针。 level 日志级别。

此构造函数由Logger类的日志宏间接调用,用户无需直接使用它。

这个 function 从 Visindigo 0.13.0 开始支持。

[noexcept, since Visindigo 0.13.0] LoggerMsgHandler::~LoggerMsgHandler()

析构函数

此析构函数会在LoggerMsgHandler对象销毁时自动调用,用于将日志消息传递给LoggerManager进行处理。

这个 function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] void LoggerMsgHandler::fromString(const QString &str)

将字符串追加到日志消息中。 str 要追加的字符串。

此函数用于将字符串追加到日志消息中,用户可以通过重载的<<运算符间接调用它。

这个 function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] Visindigo::General::Logger::Level LoggerMsgHandler::getLevel()

获取日志级别。 \return 返回日志级别枚举值。

此函数用于获取当前LoggerMsgHandler对象的日志级别。

这个 function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] Visindigo::General::Logger *LoggerMsgHandler::getLogger()

获取创建此LoggerMsgHandler对象的Logger对象的指针。 \return 返回指向Logger对象的指针。

此函数用于获取创建此LoggerMsgHandler对象的Logger对象的指针。

这个 function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] QString LoggerMsgHandler::getMessage()

获取日志消息内容。 \return 返回日志消息内容的QString表示。

此函数用于获取当前LoggerMsgHandler对象承接的日志消息内容。

这个 function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] Visindigo::General::LogMetaData LoggerMsgHandler::getMetaData()

获取日志元信息。 \return 返回LogMetaData对象。 此函数用于获取当前LoggerMsgHandler对象的日志元信息。

这个 function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] QList<Visindigo::General::StacktraceFrame> LoggerMsgHandler::getStacktrace()

获取日志堆栈跟踪信息。 \return 返回包含StacktraceFrame对象的QList。 此函数用于获取当前LoggerMsgHandler对象的日志堆栈跟踪信息。

这个 function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] Visindigo::General::LoggerMsgHandler &LoggerMsgHandler::operator<<(QList<QObject *> qobject_list)

重载<<运算符以承接各种类型的日志消息。这里展示成员为QObject*指针类型的QList的实现。 它输出每个QObject指针的类名及地址。

这个 function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] template <typename T> Visindigo::General::LoggerMsgHandler &LoggerMsgHandler::operator<<(QList<T> any_list)

重载<<运算符以承接成员为任意类型的QList日志消息。 这里强制将每个成员输出为其内存地址。 typename T 为 Printable 时,则输出toString()的结果。

这个 function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] Visindigo::General::LoggerMsgHandler &LoggerMsgHandler::operator<<(QMap<QString, QObject *> pointer_map)

重载<<运算符以承接各种类型的日志消息。这里展示QMap的key为QString,value为QObject*指针类型的实现。 它输出每个键值对的key和value的类名及地址。

这个 function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] template <typename T> Visindigo::General::LoggerMsgHandler &LoggerMsgHandler::operator<<(QMap<QString, T> any_map)

重载<<运算符以承接成员为任意类型的QMap日志消息。 这里强制将每个成员输出为其内存地址。 typename T 为 Printable 时,则输出toString()的结果。

这个 function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] Visindigo::General::LoggerMsgHandler &LoggerMsgHandler::operator<<(QObject *pointer)

重载<<运算符以承接各种类型的日志消息。这里展示QObject*类型的实现。

这个 function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] template <typename T> Visindigo::General::LoggerMsgHandler &LoggerMsgHandler::operator<<(T type)

重载<<运算符以承接符合Printable概念的自定义类型的日志消息。

这个 function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] Visindigo::General::LoggerMsgHandler &LoggerMsgHandler::operator<<(bool b)

重载<<运算符以承接各种类型的日志消息。这里展示bool类型的实现。

这个 function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] Visindigo::General::LoggerMsgHandler &LoggerMsgHandler::operator<<(const QByteArray &byteArray)

重载<<运算符以承接各种类型的日志消息。这里展示QByteArray类型的实现。

这个 function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] Visindigo::General::LoggerMsgHandler &LoggerMsgHandler::operator<<(const QList<Visindigo::General::StacktraceFrame> &stacktrace)

允许从<<运算符输入日志的堆栈跟踪信息。

这个 function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] Visindigo::General::LoggerMsgHandler &LoggerMsgHandler::operator<<(const QString &str)

重载<<运算符以承接各种类型的日志消息。这里展示QString类型的实现。

这个 function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] Visindigo::General::LoggerMsgHandler &LoggerMsgHandler::operator<<(const QStringList &strList)

重载<<运算符以承接各种类型的日志消息。这里展示QStringList类型的实现。

这个 function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] Visindigo::General::LoggerMsgHandler &LoggerMsgHandler::operator<<(const Visindigo::General::LogMetaData &metaData)

允许从<<运算符输入日志的元信息。

这个 function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] Visindigo::General::LoggerMsgHandler &LoggerMsgHandler::operator<<(const char *str)

重载<<运算符以承接各种类型的日志消息。这里展示const char*类型的实现。

这个 function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] Visindigo::General::LoggerMsgHandler &LoggerMsgHandler::operator<<(double num)

重载<<运算符以承接各种类型的日志消息。这里展示double类型的实现。

这个 function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] Visindigo::General::LoggerMsgHandler &LoggerMsgHandler::operator<<(float num)

重载<<运算符以承接各种类型的日志消息。这里展示float类型的实现。

这个 function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] Visindigo::General::LoggerMsgHandler &LoggerMsgHandler::operator<<(qint16 num)

重载<<运算符以承接各种类型的日志消息。这里展示qint16类型的实现。

这个 function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] Visindigo::General::LoggerMsgHandler &LoggerMsgHandler::operator<<(qint32 num)

重载<<运算符以承接各种类型的日志消息。这里展示qint32类型的实现。

这个 function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] Visindigo::General::LoggerMsgHandler &LoggerMsgHandler::operator<<(qint64 num)

重载<<运算符以承接各种类型的日志消息。这里展示qint64类型的实现。

这个 function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] Visindigo::General::LoggerMsgHandler &LoggerMsgHandler::operator<<(qint8 num)

重载<<运算符以承接各种类型的日志消息。这里展示qint8类型的实现。

这个 function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] Visindigo::General::LoggerMsgHandler &LoggerMsgHandler::operator<<(quint16 num)

重载<<运算符以承接各种类型的日志消息。这里展示quint16类型的实现。

这个 function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] Visindigo::General::LoggerMsgHandler &LoggerMsgHandler::operator<<(quint32 num)

重载<<运算符以承接各种类型的日志消息。这里展示quint32类型的实现。

这个 function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] Visindigo::General::LoggerMsgHandler &LoggerMsgHandler::operator<<(quint64 num)

重载<<运算符以承接各种类型的日志消息。这里展示quint64类型的实现。

这个 function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] Visindigo::General::LoggerMsgHandler &LoggerMsgHandler::operator<<(quint8 num)

重载<<运算符以承接各种类型的日志消息。这里展示quint8类型的实现。

这个 function 从 Visindigo 0.13.0 开始支持。