diff options
author | Robert Griebl <robert.griebl@qt.io> | 2022-02-23 13:41:31 +0100 |
---|---|---|
committer | Robert Griebl <robert.griebl@qt.io> | 2022-02-25 12:39:22 +0100 |
commit | 1acd11515aaf37b535791ddec0bd9698ad34de59 (patch) | |
tree | bba72cc3f7b4425ca9f21935cccdf914d6d2f5d0 /src/main-lib | |
parent | 6b50bedfbf0451440da0d6c269737876cf66b3fb (diff) | |
download | qtapplicationmanager-1acd11515aaf37b535791ddec0bd9698ad34de59.tar.gz |
Add an option to configure how very long log messages are passed to DLT
This commit was already planned for the 5.12 release, had to be reverted
due to a SC break in QtGeniviExtras and was subsequentially forgotten.
Change-Id: I76ab4af4b1ee847a33ad0eb523b79021cf666d43
Pick-to: 5.15
Reviewed-by: Dominik Holland <dominik.holland@qt.io>
Diffstat (limited to 'src/main-lib')
-rw-r--r-- | src/main-lib/configuration.cpp | 22 | ||||
-rw-r--r-- | src/main-lib/configuration.h | 2 | ||||
-rw-r--r-- | src/main-lib/configuration_p.h | 1 | ||||
-rw-r--r-- | src/main-lib/main.cpp | 1 |
4 files changed, 24 insertions, 2 deletions
diff --git a/src/main-lib/configuration.cpp b/src/main-lib/configuration.cpp index bfc82fbf..b9b152de 100644 --- a/src/main-lib/configuration.cpp +++ b/src/main-lib/configuration.cpp @@ -386,7 +386,7 @@ void Configuration::parseWithArguments(const QStringList &arguments) } -const quint32 ConfigurationData::DataStreamVersion = 5; +const quint32 ConfigurationData::DataStreamVersion = 6; ConfigurationData *ConfigurationData::loadFromCache(QDataStream &ds) @@ -409,6 +409,7 @@ ConfigurationData *ConfigurationData::loadFromCache(QDataStream &ds) >> cd->plugins.container >> cd->logging.dlt.id >> cd->logging.dlt.description + >> cd->logging.dlt.longMessageBehavior >> cd->logging.rules >> cd->logging.messagePattern >> cd->logging.useAMConsoleLogger @@ -471,6 +472,7 @@ void ConfigurationData::saveToCache(QDataStream &ds) const << plugins.container << logging.dlt.id << logging.dlt.description + << logging.dlt.longMessageBehavior << logging.rules << logging.messagePattern << logging.useAMConsoleLogger @@ -570,6 +572,7 @@ void ConfigurationData::mergeFrom(const ConfigurationData *from) MERGE_FIELD(plugins.container); MERGE_FIELD(logging.dlt.id); MERGE_FIELD(logging.dlt.description); + MERGE_FIELD(logging.dlt.longMessageBehavior); MERGE_FIELD(logging.rules); MERGE_FIELD(logging.messagePattern); MERGE_FIELD(logging.useAMConsoleLogger); @@ -726,7 +729,17 @@ ConfigurationData *ConfigurationData::loadFromSource(QIODevice *source, const QS { "id", false, YamlParser::Scalar, [&cd](YamlParser *p) { cd->logging.dlt.id = p->parseScalar().toString(); } }, { "description", false, YamlParser::Scalar, [&cd](YamlParser *p) { - cd->logging.dlt.description = p->parseScalar().toString(); } } + cd->logging.dlt.description = p->parseScalar().toString(); } }, + { "longMessageBehavior", false, YamlParser::Scalar, [&cd](YamlParser *p) { + static const QStringList validValues { + qL1S("split"), qL1S("truncate"), qL1S("pass") + }; + QString s = p->parseScalar().toString().trimmed(); + if (!s.isEmpty() && !validValues.contains(s)) { + throw YamlParserException(p, "dlt.longMessageBehavior needs to be one of %1").arg(validValues); + } + cd->logging.dlt.longMessageBehavior = s; + } } }); } } }); } }, { "installer", false, YamlParser::Map, [&cd](YamlParser *p) { @@ -1149,6 +1162,11 @@ QString Configuration::dltDescription() const return value<QString>(nullptr, m_data->logging.dlt.description); } +QString Configuration::dltLongMessageBehavior() const +{ + return value<QString>(nullptr, m_data->logging.dlt.longMessageBehavior); +} + QStringList Configuration::resources() const { return m_data->ui.resources; diff --git a/src/main-lib/configuration.h b/src/main-lib/configuration.h index a834318e..64eb040e 100644 --- a/src/main-lib/configuration.h +++ b/src/main-lib/configuration.h @@ -98,6 +98,8 @@ public: bool enableTouchEmulation() const; QString dltId() const; QString dltDescription() const; + QString dltLongMessageBehavior() const; + QStringList resources() const; QVariantMap openGLConfiguration() const; diff --git a/src/main-lib/configuration_p.h b/src/main-lib/configuration_p.h index 0b8277c1..671cbf82 100644 --- a/src/main-lib/configuration_p.h +++ b/src/main-lib/configuration_p.h @@ -84,6 +84,7 @@ struct ConfigurationData struct { QString id; QString description; + QString longMessageBehavior; } dlt; QStringList rules; QString messagePattern; diff --git a/src/main-lib/main.cpp b/src/main-lib/main.cpp index 19a79add..0156ab3a 100644 --- a/src/main-lib/main.cpp +++ b/src/main-lib/main.cpp @@ -204,6 +204,7 @@ void Main::setup(const Configuration *cfg) Q_DECL_NOEXCEPT_EXPR(false) setupQmlDebugging(cfg->qmlDebugging()); if (!cfg->dltId().isEmpty() || !cfg->dltDescription().isEmpty()) Logging::setSystemUiDltId(cfg->dltId().toLocal8Bit(), cfg->dltDescription().toLocal8Bit()); + Logging::setDltLongMessageBehavior(cfg->dltLongMessageBehavior()); Logging::registerUnregisteredDltContexts(); setupLogging(cfg->verbose(), cfg->loggingRules(), cfg->messagePattern(), cfg->useAMConsoleLogger()); |