mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 05:58:27 +02:00
LogHandler class stores regexps - code tweaks
Code standard changes from review.
This commit is contained in:
parent
4b27cd73ff
commit
d4cf22fbaf
2 changed files with 23 additions and 15 deletions
|
@ -117,10 +117,12 @@ QString LogHandler::printMessage(LogMsgType type, const QMessageLogContext& cont
|
||||||
|
|
||||||
if (type == LogDebug) {
|
if (type == LogDebug) {
|
||||||
// for debug messages, check if this matches any of our regexes for repeated log messages
|
// for debug messages, check if this matches any of our regexes for repeated log messages
|
||||||
for(auto& repeatRegex: _repeatedMessages) {
|
for(auto& repeatRegex : _repeatedMessages) {
|
||||||
if (repeatRegex->regexp.indexIn(message) != -1) {
|
if (repeatRegex->regexp.indexIn(message) != -1) {
|
||||||
// If we've printed the first one then return out.
|
// If we've printed the first one then return out.
|
||||||
if (repeatRegex->messageCount++ == 0) break;
|
if (repeatRegex->messageCount++ == 0) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
repeatRegex->lastMessage = message;
|
repeatRegex->lastMessage = message;
|
||||||
return QString();
|
return QString();
|
||||||
}
|
}
|
||||||
|
@ -131,11 +133,17 @@ QString LogHandler::printMessage(LogMsgType type, const QMessageLogContext& cont
|
||||||
// see if this message is one we should only print once
|
// see if this message is one we should only print once
|
||||||
for(auto& onceOnly : _onetimeMessages) {
|
for(auto& onceOnly : _onetimeMessages) {
|
||||||
if (onceOnly->regexp.indexIn(message) != -1) {
|
if (onceOnly->regexp.indexIn(message) != -1) {
|
||||||
if (onceOnly->messageCount++ == 0) break; // we have a match and haven't yet printed this message.
|
if (onceOnly->messageCount++ == 0) {
|
||||||
else return QString(); // We've already printed this message, don't print it again.
|
// we have a match and haven't yet printed this message.
|
||||||
|
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
|
||||||
// [TIMESTAMP] [DEBUG] [PID] [TID] [TARGET] logged string
|
// [TIMESTAMP] [DEBUG] [PID] [TID] [TARGET] logged string
|
||||||
|
@ -197,7 +205,7 @@ const QString& LogHandler::addRepeatedMessageRegex(const QString& regexString) {
|
||||||
QMetaObject::invokeMethod(this, "setupRepeatedMessageFlusher");
|
QMetaObject::invokeMethod(this, "setupRepeatedMessageFlusher");
|
||||||
|
|
||||||
QMutexLocker lock(&_mutex);
|
QMutexLocker lock(&_mutex);
|
||||||
std::unique_ptr<_RepeatedMessage> repeatRecord(new _RepeatedMessage());
|
std::unique_ptr<RepeatedMessage> repeatRecord(new RepeatedMessage());
|
||||||
repeatRecord->regexp = QRegExp(regexString);
|
repeatRecord->regexp = QRegExp(regexString);
|
||||||
_repeatedMessages.insert(std::move(repeatRecord));
|
_repeatedMessages.insert(std::move(repeatRecord));
|
||||||
return regexString;
|
return regexString;
|
||||||
|
@ -205,7 +213,7 @@ const QString& LogHandler::addRepeatedMessageRegex(const QString& regexString) {
|
||||||
|
|
||||||
const QString& LogHandler::addOnlyOnceMessageRegex(const QString& regexString) {
|
const QString& LogHandler::addOnlyOnceMessageRegex(const QString& regexString) {
|
||||||
QMutexLocker lock(&_mutex);
|
QMutexLocker lock(&_mutex);
|
||||||
std::unique_ptr<_OnceOnlyMessage> onetimeMessage(new _OnceOnlyMessage());
|
std::unique_ptr<OnceOnlyMessage> onetimeMessage(new OnceOnlyMessage());
|
||||||
onetimeMessage->regexp = QRegExp(regexString);
|
onetimeMessage->regexp = QRegExp(regexString);
|
||||||
_onetimeMessages.insert(std::move(onetimeMessage));
|
_onetimeMessages.insert(std::move(onetimeMessage));
|
||||||
return regexString;
|
return regexString;
|
||||||
|
|
|
@ -68,18 +68,18 @@ private:
|
||||||
bool _shouldOutputThreadID { false };
|
bool _shouldOutputThreadID { false };
|
||||||
bool _shouldDisplayMilliseconds { false };
|
bool _shouldDisplayMilliseconds { false };
|
||||||
|
|
||||||
struct _RepeatedMessage {
|
struct RepeatedMessage {
|
||||||
QRegExp regexp;
|
QRegExp regexp;
|
||||||
int messageCount { 0 };
|
int messageCount { 0 };
|
||||||
QString lastMessage;
|
QString lastMessage;
|
||||||
};
|
};
|
||||||
std::set<std::unique_ptr<_RepeatedMessage>> _repeatedMessages;
|
std::set<std::unique_ptr<RepeatedMessage>> _repeatedMessages;
|
||||||
|
|
||||||
struct _OnceOnlyMessage {
|
struct OnceOnlyMessage {
|
||||||
QRegExp regexp;
|
QRegExp regexp;
|
||||||
int messageCount { 0 };
|
int messageCount { 0 };
|
||||||
};
|
};
|
||||||
std::set<std::unique_ptr<_OnceOnlyMessage>> _onetimeMessages;
|
std::set<std::unique_ptr<OnceOnlyMessage>> _onetimeMessages;
|
||||||
|
|
||||||
static QMutex _mutex;
|
static QMutex _mutex;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue