summaryrefslogtreecommitdiff
path: root/src/main-lib
diff options
context:
space:
mode:
authorRobert Griebl <robert.griebl@qt.io>2022-02-23 13:41:31 +0100
committerRobert Griebl <robert.griebl@qt.io>2022-02-25 12:39:22 +0100
commit1acd11515aaf37b535791ddec0bd9698ad34de59 (patch)
treebba72cc3f7b4425ca9f21935cccdf914d6d2f5d0 /src/main-lib
parent6b50bedfbf0451440da0d6c269737876cf66b3fb (diff)
downloadqtapplicationmanager-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.cpp22
-rw-r--r--src/main-lib/configuration.h2
-rw-r--r--src/main-lib/configuration_p.h1
-rw-r--r--src/main-lib/main.cpp1
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());