diff --git a/src/CmdLineOptParser.cc b/src/CmdLineOptParser.cc index ac125d2..e811be6 100644 --- a/src/CmdLineOptParser.cc +++ b/src/CmdLineOptParser.cc @@ -51,7 +51,9 @@ void ParseCmdLineOptions(int& argc, ///< count of ar if (arg.startsWith(QString("%1:").arg(optionStr), Qt::CaseInsensitive)) { found = true; - prgOpts[iOption].optionArg = arg.right(arg.length() - (optionStr.length() + 1)); + if (prgOpts[iOption].optionArg) { + *prgOpts[iOption].optionArg = arg.right(arg.length() - (optionStr.length() + 1)); + } } else if (arg.compare(optionStr, Qt::CaseInsensitive) == 0) { found = true; } diff --git a/src/CmdLineOptParser.h b/src/CmdLineOptParser.h index c5a1362..c0402d6 100644 --- a/src/CmdLineOptParser.h +++ b/src/CmdLineOptParser.h @@ -36,7 +36,7 @@ typedef struct { const char* optionStr; ///< command line option, for example "--foo" bool* optionFound; ///< if option is found this variable will be set to true - QString optionArg; ///< Option has additional argument, form is option:arg + QString* optionArg; ///< Option has additional argument, form is option:arg } CmdLineOpt_t; void ParseCmdLineOptions(int& argc, diff --git a/src/FactSystem/ParameterLoader.cc b/src/FactSystem/ParameterLoader.cc index dbfce63..63991ca 100644 --- a/src/FactSystem/ParameterLoader.cc +++ b/src/FactSystem/ParameterLoader.cc @@ -36,6 +36,7 @@ #include QGC_LOGGING_CATEGORY(ParameterLoaderLog, "ParameterLoaderLog") +QGC_LOGGING_CATEGORY(ParameterLoaderVerboseLog, "ParameterLoaderVerboseLog") Fact ParameterLoader::_defaultFact; @@ -130,7 +131,7 @@ void ParameterLoader::_parameterUpdate(int uasId, int componentId, QString param _waitingReadParamIndexMap[componentId].remove(parameterId); _waitingReadParamNameMap[componentId].remove(parameterName); _waitingWriteParamNameMap[componentId].remove(parameterName); - qCDebug(ParameterLoaderLog) << "_waitingReadParamIndexMap:" << _waitingReadParamIndexMap[componentId]; + qCDebug(ParameterLoaderVerboseLog) << "_waitingReadParamIndexMap:" << _waitingReadParamIndexMap[componentId]; qCDebug(ParameterLoaderLog) << "_waitingReadParamNameMap" << _waitingReadParamNameMap[componentId]; qCDebug(ParameterLoaderLog) << "_waitingWriteParamNameMap" << _waitingWriteParamNameMap[componentId]; diff --git a/src/FactSystem/ParameterLoader.h b/src/FactSystem/ParameterLoader.h index 3580406..4e5a393 100644 --- a/src/FactSystem/ParameterLoader.h +++ b/src/FactSystem/ParameterLoader.h @@ -40,6 +40,7 @@ /// @author Don Gagne Q_DECLARE_LOGGING_CATEGORY(ParameterLoaderLog) +Q_DECLARE_LOGGING_CATEGORY(ParameterLoaderVerboseLog) /// Connects to Parameter Manager to load/update Facts class ParameterLoader : public QObject diff --git a/src/QGCApplication.cc b/src/QGCApplication.cc index d96ba0b..0a0d840 100644 --- a/src/QGCApplication.cc +++ b/src/QGCApplication.cc @@ -180,14 +180,15 @@ QGCApplication::QGCApplication(int &argc, char* argv[], bool unitTesting) // Parse command line options bool fClearSettingsOptions = false; // Clear stored settings - bool fullLogging = false; // Turn on all logging + bool logging = false; // Turn on logging + QString loggingOptions; CmdLineOpt_t rgCmdLineOptions[] = { - { "--clear-settings", &fClearSettingsOptions, QString() }, - { "--full-logging", &fullLogging, QString() }, - { "--fake-mobile", &_fakeMobile, QString() }, + { "--clear-settings", &fClearSettingsOptions, NULL }, + { "--logging", &logging, &loggingOptions }, + { "--fake-mobile", &_fakeMobile, NULL }, #ifdef QT_DEBUG - { "--test-high-dpi", &_testHighDPI, QString() }, + { "--test-high-dpi", &_testHighDPI, NULL }, #endif // Add additional command line option flags here }; @@ -197,8 +198,30 @@ QGCApplication::QGCApplication(int &argc, char* argv[], bool unitTesting) #ifdef __mobile__ QLoggingCategory::setFilterRules(QStringLiteral("*Log.debug=false")); #else - if (fullLogging) { - QLoggingCategory::setFilterRules(QStringLiteral("*Log=true")); + if (logging) { + QString filterRules; + QStringList logList = loggingOptions.split(","); + + if (logList[0] == "full") { + filterRules += "*Log.debug=true\n"; + for(int i=1; i