QDltRegistration 类

QDltRegistration 类控制 QLoggingCategory 与 dlt 上下文之间的映射。 更多...

头文件 #include <QDltRegistration>
qmakeQT += geniviextras
继承 QObject

公共类型

枚举类型LongMessageBehavior { Truncate, Split, Pass }

属性

公共函数

QDltRegistration::LongMessageBehaviorlongMessageBehavior() const
voidregisterApplication(const char *dltAppID, const char *dltAppDescription)
voidregisterCategory(const QLoggingCategory *category, const char *dltCtxName, const char *dltCtxDescription)
voidregisterUnregisteredContexts()
voidsetDefaultContext(const char *categoryName)
voidsetLongMessageBehavior(QDltRegistration::LongMessageBehavior config)
voidsetRegisterContextOnFirstUseEnabled(bool enabled)
voidunregisterApplication()
voidunregisterCategories()

信号

voidlogLevelChanged(const QLoggingCategory *category)

静态公共成员

voidmessageHandler(QtMsgType msgType, const QMessageLogContext &msgCtx, const QString &msg)

详细描述

该类与 dlt-daemon 通信,并提供一个 Qt messageHandler,该 handler 将 Qt 日志框架记录的日志消息转发到 dlt-daemon。

使用 dlt-daemon 版本 2.12 或更高版本时,它还会对 DLT 控制消息做出反应,并在 dlt 上下文的日志级别变化时调整 QLoggingCategory 的启用 msg 类型。

成员类型文档

枚举类型 LongMessageBehavior

此枚举类型描述了长消息的可用选项。

常量描述
QDltRegistration::LongMessageBehavior::Truncate0将消息截断为最大长度。
QDltRegistration::LongMessageBehavior::Split1将消息拆分为几个较小的部分。
QDltRegistration::LongMessageBehavior::Pass2按原样将消息传递给 DLT。此选项的性能影响最小,但如果消息过长,DLT 可能会忽略该消息并仅生成一个空行。

此枚举是在 Qt 5.12.4 中引入或修改的。

属性文档

longMessageBehavior : LongMessageBehavior

定义了处理对于 DLT 无法正确处理的超长消息的方式

DLT 定义一个消息的最大大小约为 1k(实际值取决于所使用的 DLT 版本)。

默认行为是将消息截断到最大支持长度。

此属性自 Qt 5.12.4 版本中引入。

访问函数

QDltRegistration::LongMessageBehaviorlongMessageBehavior() const
voidsetLongMessageBehavior(QDltRegistration::LongMessageBehavior config)

成员函数文档

[信号]void QDltRegistration::logLevelChanged(const QLoggingCategory *category)

每当 dlt-daemon 更改 dlt 上下文的日志级别并且该 dlt 上下文与 QLoggingCategory 注册时,都会发出此信号。更新的 QLoggingCategory 作为 category 传递。

注意:此信号需要一个等于 2.12 或更高版本的 dlt-daemon。

[静态]void QDltRegistration::messageHandler(QtMsgType msgType, const QMessageLogContext &msgCtx, const QString &msg)

Qt 消息处理器,将所有日志消息转发到 dlt-daemon。

此函数将 msgTypes 映射到相应的 dlt 日志级别,并将 msg 转发到与 msgCtx 中的类别匹配的 dlt 上下文。

如果 msgCtx 中的类别尚未与 dlt 上下文注册,则将使用后备日志类别(如果已注册)。

此 messageHandler 需要通过以下方式安装

qInstallMessageHandler(QDltRegistration::messageHandler);

void QDltRegistration::registerApplication(const char *dltAppID, const char *dltAppDescription)

使用 dltAppIDdltAppDescription 注册应用程序到 dlt-daemon。

每个进程只能注册一个应用程序。在应用程序已经被注册后调用此函数,将在新的 dltAppIDdltAppDescription 下注册应用程序,并填充此应用程序下已注册的所有 dlt 上下文。如果应用程序之前已注册,使用空 dltAppID 调用该方法只会更新描述。

另请参阅:QDLT_REGISTER_APPLICATION

void QDltRegistration::registerCategory(const QLoggingCategory *category, const char *dltCtxName, const char *dltCtxDescription)

使用 dltCtxNamedltCtxDescriptioncategory 注册到 dlt-daemon。

不应直接使用此函数,而应使用便利宏。

另请参阅:QDLT_LOGGING_CATEGORYQDLT_REGISTER_LOGGING_CATEGORY

void QDltRegistration::registerUnregisteredContexts()

将所有尚未注册的上下文与 dlt-daemon 注册。

该函数可以与 setRegisterContextOnFirstUseEnabled 结合使用,以延迟对 dlt-daemon 的注册,直到真正需要注册,并且所有尚未注册的上下文都安全注册后,例如使用相关的日志类别。

另请参阅setRegisterContextOnFirstUseEnabled

void QDltRegistration::setDefaultContext(const char *categoryName)

categoryName 设置为后备日志类别。

categoryName 需要是 dlt-daemon 中已注册的有效 QLoggingCategory 名称。可以通过使用 QDLT_LOGGING_CATEGORYQDLT_REGISTER_LOGGING_CATEGORY 实现。

不应直接使用此函数,而应使用便利宏。

另请参阅QDLT_FALLBACK_CATEGORY

void QDltRegistration::setRegisterContextOnFirstUseEnabled(bool enabled)

当设置为 enabled 时,类别第一次使用时进行注册。

否则,在调用 QDLT_LOGGING_CATEGORYQDLT_REGISTER_LOGGING_CATEGORY 时立即进行注册。

不应直接使用此函数,而应使用便利宏。

另请参阅QDLT_REGISTER_CONTEXT_ON_FIRST_USE

void QDltRegistration::unregisterApplication()

从 dlt-daemon 中注销应用程序。将删除已注册的应用程序以及所有已注册的 dlt 上下文。

void QDltRegistration::unregisterCategories()

从 dlt-daemon 注销所有类别及其关联的上下文 ID。

此函数的一个应用可以是更新日志级别:在此函数调用后,所有类别将在下次使用时重新注册(带有新日志级别)。

©2020 The Qt Company Ltd. 本文档中的文档贡献归其各自所有者所有。本文档根据发布的 Free Software Foundation 条款许可,许可协议为 GNU Free Documentation License version 1.3。Qt 和相关标志是 The Qt Company Ltd. 在芬兰和/或其他国家和地区的商标。所有其他商标均为其各自所有者的财产。