mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 19:36:45 +02:00
Merge pull request #4365 from sethalves/log-only-once
Log message type just once
This commit is contained in:
commit
c9f97b312e
3 changed files with 23 additions and 3 deletions
|
@ -944,7 +944,7 @@ void DomainServer::readAvailableDatagrams() {
|
||||||
|
|
||||||
if (requestAssignment.getType() != Assignment::AgentType
|
if (requestAssignment.getType() != Assignment::AgentType
|
||||||
|| noisyMessageTimer.elapsed() > NOISY_MESSAGE_INTERVAL_MSECS) {
|
|| noisyMessageTimer.elapsed() > NOISY_MESSAGE_INTERVAL_MSECS) {
|
||||||
static QString repeatedMessage = LogHandler::getInstance().addRepeatedMessageRegex
|
static QString repeatedMessage = LogHandler::getInstance().addOnlyOnceMessageRegex
|
||||||
("Received a request for assignment type [^ ]+ from [^ ]+");
|
("Received a request for assignment type [^ ]+ from [^ ]+");
|
||||||
qDebug() << "Received a request for assignment type" << requestAssignment.getType()
|
qDebug() << "Received a request for assignment type" << requestAssignment.getType()
|
||||||
<< "from" << senderSockAddr;
|
<< "from" << senderSockAddr;
|
||||||
|
@ -977,7 +977,7 @@ void DomainServer::readAvailableDatagrams() {
|
||||||
} else {
|
} else {
|
||||||
if (requestAssignment.getType() != Assignment::AgentType
|
if (requestAssignment.getType() != Assignment::AgentType
|
||||||
|| noisyMessageTimer.elapsed() > NOISY_MESSAGE_INTERVAL_MSECS) {
|
|| noisyMessageTimer.elapsed() > NOISY_MESSAGE_INTERVAL_MSECS) {
|
||||||
static QString repeatedMessage = LogHandler::getInstance().addRepeatedMessageRegex
|
static QString repeatedMessage = LogHandler::getInstance().addOnlyOnceMessageRegex
|
||||||
("Unable to fulfill assignment request of type [^ ]+ from [^ ]+");
|
("Unable to fulfill assignment request of type [^ ]+ from [^ ]+");
|
||||||
qDebug() << "Unable to fulfill assignment request of type" << requestAssignment.getType()
|
qDebug() << "Unable to fulfill assignment request of type" << requestAssignment.getType()
|
||||||
<< "from" << senderSockAddr;
|
<< "from" << senderSockAddr;
|
||||||
|
|
|
@ -101,6 +101,22 @@ QString LogHandler::printMessage(LogMsgType type, const QMessageLogContext& cont
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// see if this message is one we should only print once
|
||||||
|
foreach(const QString& regexString, getInstance()._onlyOnceMessageRegexes) {
|
||||||
|
QRegExp onlyOnceRegex(regexString);
|
||||||
|
if (onlyOnceRegex.indexIn(message) != -1) {
|
||||||
|
if (!_onlyOnceMessageCountHash.contains(message)) {
|
||||||
|
// we have a match and haven't yet printed this message.
|
||||||
|
_onlyOnceMessageCountHash[message] = 1;
|
||||||
|
// break the foreach so we output the first match
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
// We've already printed this message, don't print it again.
|
||||||
|
return QString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// log prefix is in the following format
|
// log prefix is in the following format
|
||||||
|
|
|
@ -48,6 +48,7 @@ public:
|
||||||
static void verboseMessageHandler(QtMsgType type, const QMessageLogContext& context, const QString &message);
|
static void verboseMessageHandler(QtMsgType type, const QMessageLogContext& context, const QString &message);
|
||||||
|
|
||||||
const QString& addRepeatedMessageRegex(const QString& regexString) { return *_repeatedMessageRegexes.insert(regexString); }
|
const QString& addRepeatedMessageRegex(const QString& regexString) { return *_repeatedMessageRegexes.insert(regexString); }
|
||||||
|
const QString& addOnlyOnceMessageRegex(const QString& regexString) { return *_onlyOnceMessageRegexes.insert(regexString); }
|
||||||
private:
|
private:
|
||||||
LogHandler();
|
LogHandler();
|
||||||
|
|
||||||
|
@ -58,6 +59,9 @@ private:
|
||||||
QSet<QString> _repeatedMessageRegexes;
|
QSet<QString> _repeatedMessageRegexes;
|
||||||
QHash<QString, int> _repeatMessageCountHash;
|
QHash<QString, int> _repeatMessageCountHash;
|
||||||
QHash<QString, QString> _lastRepeatedMessage;
|
QHash<QString, QString> _lastRepeatedMessage;
|
||||||
|
|
||||||
|
QSet<QString> _onlyOnceMessageRegexes;
|
||||||
|
QHash<QString, int> _onlyOnceMessageCountHash;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // hifi_LogHandler_h
|
#endif // hifi_LogHandler_h
|
||||||
|
|
Loading…
Reference in a new issue