<QtDlt> - Qt DLT 声明

<QtDlt> 头文件包含用于与 dlt-daemon 注册并映射 QLoggingCategories 到 dlt 上下文的宏。更多...

头文件 #include <QtDlt>

QDLT_FALLBACK_CATEGORY(CATEGORY)
QDLT_LOGGING_CATEGORY(CATEGORY, CATEGORYNAME, DLT_CTX_NAME, DLT_CTX_DESCRIPTION)
QDLT_REGISTER_APPLICATION(NAME, DESCRIPTION)
QDLT_REGISTER_CONTEXT_ON_FIRST_USE(ENABLED)
QDLT_REGISTER_LOGGING_CATEGORY(CATEGORY, CATEGORYNAME, DLT_CTX_NAME, DLT_CTX_DESCRIPTION)

详细描述

GENIVI DLT

GENIVI DLT 是一种汽车日志系统。它由两个应用程序组成;一个用于收集各种应用程序和 Linux 系统日志的日志守护进程(dlt-daemon),以及一个运行在主机上的查看器应用程序(dlt-viewer),它可以连接到运行 dlt-daemon 的目标。

可以配置 dlt-daemon 将日志记录到文件中,或者在多个 ECU 情况下将日志转发到另一个 dlt-daemon。有关 dlt-daemon 的更多信息,请参阅 dlt-daemon 文档

DLT 应用程序、上下文和日志级别

每个想要将日志记录到 dlt-daemon 的应用程序都需要注册自己。应用程序通过一个四字符长的标识符和表示 dlt-viewer 的更完整描述来识别。

每个已注册的应用程序都可以注册多个 dlt 上下文,它们由一个四字符长的标识符和详细的描述组成。

每个 dlt 上下文都有一个当前的日志级别,它定义了哪些日志被转发到 dlt-daemon 或在应用程序中丢弃。

控制 dlt-daemon

运行在主机机器上的 dlt-viewer 控制着 dlt-daemon。dlt-viewer 可以看到所有注册到 dlt-daemon 的应用程序,包括它们的上下文和当前的日志级别。所有日志都从 dlt-daemon 转发到连接的 dlt-viewer,并且可以进行过滤和导出。

此外,dlt-viewer 可以向 dlt-daemon 发送所谓的“控制消息”,以更改 dlt 上下文的日志级别。从 dlt-daemon 版本 2.12 开始,这些“控制消息”也会转发到日志应用程序,并由 Qt 解析,以设置已注册的 QLoggingCategory 的匹配日志级别。

Qt 消息类型映射

由于 DLT 系统与 Qt 带有分类的日志系统不是一对一的对应关系,因此需要一个日志级别的映射。在 DLT 中,无法仅使 QLoggingCategory 的特定消息类型生效,因为 DLT 仅定义了最大日志级别。由于此限制,一旦更改了 dlt 上下文的日志级别,所有较低的消息类型都会自动启用。

以下映射用于向 DLT 记录日志

Qt 消息类型DLT 日志级别
Qt调试消息DLT_LOG_DEBUG
Qt信息消息DLT_LOG_INFO
Qt警告消息DLT_LOG_WARN
Qt临界消息DLT_LOG_ERROR
Qt致命消息DLT_LOG_FATAL
未启用消息类型DLT_LOG_OFF

使用dlt-viewer更改日志级别将启用以下消息类型

DLT 日志级别Qt消息类型
DLT_LOG_VERBOSEQtDebugMsg QtInfoMsg QtWarningMsg QtCriticalMsg QtFatalMsg
DLT_LOG_INFOQtDebugMsg QtInfoMsg QtWarningMsg QtCriticalMsg QtFatalMsg
DLT_LOG_DEBUGQtInfoMsg QtWarningMsg QtCriticalMsg QtFatalMsg
DLT_LOG_WARNQtWarningMsg QtCriticalMsg QtFatalMsg
DLT_LOG_ERRORQtCriticalMsg QtFatalMsg
DLT_LOG_FATALQt致命消息
DLT_LOG_OFF未启用消息类型

宏文档

QDLT_FALLBACK_CATEGORY(CATEGORY)

将现有的QLoggingCategory CATEGORY注册为dlt后备类别。 CATEGORY必须已经通过使用QDLT_LOGGING_CATEGORYQDLT_REGISTER_LOGGING_CATEGORY映射到dlt上下文。后备类别用于所有未映射到dlt上下文或未使用QLoggingCategory的日志消息。

QDLT_LOGGING_CATEGORY(CATEGORY, CATEGORYNAME, DLT_CTX_NAME, DLT_CTX_DESCRIPTION)

定义一个新的QLoggingCategory CATEGORY并将其在CATEGORYNAME标识符下设置为可配置的。dlt上下文将注册为DLT_CTX_NAME,并使用DLT_CTX_DESCRIPTION作为描述。

注意: DLT_CTX_NAME限制为(大小为)4个字符。

QDLT_REGISTER_APPLICATION(NAME, DESCRIPTION)

将应用程序以NAMEDESCRIPTION注册到dlt-daemon。所有已注册的DLT日志类别都将成为dlt-daemon中此应用程序的一部分。每个进程只能注册一个应用程序。

注意: NAME限制为(大小为)4个字符。

QDLT_REGISTER_CONTEXT_ON_FIRST_USE(ENABLED)

当设置为ENABLED时,在首次使用类别时进行注册。

否则,注册将在调用QDLT_LOGGING_CATEGORYQDLT_REGISTER_LOGGING_CATEGORY时直接进行。

QDLT_REGISTER_LOGGING_CATEGORY(CATEGORY, CATEGORYNAME, DLT_CTX_NAME, DLT_CTX_DESCRIPTION)

将现有的QLoggingCategory CATEGORY注册为CATEGORYNAME标识符下的可配置类别。新类别将映射到DLT_CTX_NAME dlt上下文,并使用DLT_CTX_DESCRIPTION

注意: DLT_CTX_NAME限制为(大小为)4个字符。

©2020 The Qt Company Ltd. 本文档中的文档贡献是各自所有者的版权。提供的文档是根据自由软件基金会发布的GNU自由文档许可证版本1.3的条款许可的。Qt及相关标志是The Qt Company Ltd.在芬兰和/或其他国家的商标。所有其他商标均为各自所有者的财产。