mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 17:17:58 +02:00
Handle one-time messages outside LogHandler class
Also change to std::call_once for the file-scope message IDs.
This commit is contained in:
parent
ce5f6da6ca
commit
d05f0600d4
4 changed files with 19 additions and 49 deletions
|
@ -1284,10 +1284,10 @@ void DomainServer::processRequestAssignmentPacket(QSharedPointer<ReceivedMessage
|
||||||
|
|
||||||
const qint64 NOISY_MESSAGE_INTERVAL_MSECS = 5 * 1000;
|
const qint64 NOISY_MESSAGE_INTERVAL_MSECS = 5 * 1000;
|
||||||
|
|
||||||
if (requestAssignment.getType() != Assignment::AgentType
|
static bool printedAssignmentTypeMessage = false;
|
||||||
|| noisyMessageTimer.elapsed() > NOISY_MESSAGE_INTERVAL_MSECS) {
|
if (!printedAssignmentTypeMessage && (requestAssignment.getType() != Assignment::AgentType
|
||||||
static QString repeatedMessage = LogHandler::getInstance().addOnlyOnceMessageRegex
|
|| noisyMessageTimer.elapsed() > NOISY_MESSAGE_INTERVAL_MSECS)) {
|
||||||
("Received a request for assignment type [^ ]+ from [^ ]+");
|
printedAssignmentTypeMessage = true;
|
||||||
qDebug() << "Received a request for assignment type" << requestAssignment.getType()
|
qDebug() << "Received a request for assignment type" << requestAssignment.getType()
|
||||||
<< "from" << message->getSenderSockAddr();
|
<< "from" << message->getSenderSockAddr();
|
||||||
noisyMessageTimer.restart();
|
noisyMessageTimer.restart();
|
||||||
|
@ -1324,10 +1324,10 @@ void DomainServer::processRequestAssignmentPacket(QSharedPointer<ReceivedMessage
|
||||||
_gatekeeper.addPendingAssignedNode(uniqueAssignment.getUUID(), assignmentToDeploy->getUUID(),
|
_gatekeeper.addPendingAssignedNode(uniqueAssignment.getUUID(), assignmentToDeploy->getUUID(),
|
||||||
requestAssignment.getWalletUUID(), requestAssignment.getNodeVersion());
|
requestAssignment.getWalletUUID(), requestAssignment.getNodeVersion());
|
||||||
} else {
|
} else {
|
||||||
if (requestAssignment.getType() != Assignment::AgentType
|
static bool printedAssignmentRequestMessage = false;
|
||||||
|| noisyMessageTimer.elapsed() > NOISY_MESSAGE_INTERVAL_MSECS) {
|
if (!printedAssignmentRequestMessage && (requestAssignment.getType() != Assignment::AgentType
|
||||||
static QString repeatedMessage = LogHandler::getInstance().addOnlyOnceMessageRegex
|
|| noisyMessageTimer.elapsed() > NOISY_MESSAGE_INTERVAL_MSECS)) {
|
||||||
("Unable to fulfill assignment request of type [^ ]+ from [^ ]+");
|
printedAssignmentRequestMessage = true;
|
||||||
qDebug() << "Unable to fulfill assignment request of type" << requestAssignment.getType()
|
qDebug() << "Unable to fulfill assignment request of type" << requestAssignment.getType()
|
||||||
<< "from" << message->getSenderSockAddr();
|
<< "from" << message->getSenderSockAddr();
|
||||||
noisyMessageTimer.restart();
|
noisyMessageTimer.restart();
|
||||||
|
@ -1576,10 +1576,12 @@ void DomainServer::sendICEServerAddressToMetaverseAPI() {
|
||||||
callbackParameters.jsonCallbackReceiver = this;
|
callbackParameters.jsonCallbackReceiver = this;
|
||||||
callbackParameters.jsonCallbackMethod = "handleSuccessfulICEServerAddressUpdate";
|
callbackParameters.jsonCallbackMethod = "handleSuccessfulICEServerAddressUpdate";
|
||||||
|
|
||||||
static QString repeatedMessage = LogHandler::getInstance().addOnlyOnceMessageRegex
|
static bool printedIceServerMessage = false;
|
||||||
("Updating ice-server address in High Fidelity Metaverse API to [^ \n]+");
|
if (!printedIceServerMessage) {
|
||||||
qDebug() << "Updating ice-server address in High Fidelity Metaverse API to"
|
printedIceServerMessage = true;
|
||||||
<< (_iceServerSocket.isNull() ? "" : _iceServerSocket.getAddress().toString());
|
qDebug() << "Updating ice-server address in High Fidelity Metaverse API to"
|
||||||
|
<< (_iceServerSocket.isNull() ? "" : _iceServerSocket.getAddress().toString());
|
||||||
|
}
|
||||||
|
|
||||||
static const QString DOMAIN_ICE_ADDRESS_UPDATE = "/api/v1/domains/%1/ice_server_address";
|
static const QString DOMAIN_ICE_ADDRESS_UPDATE = "/api/v1/domains/%1/ice_server_address";
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ void render::renderItems(const RenderContextPointer& renderContext, const ItemBo
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
int repeatedInvalidKeyMessageID = 0;
|
int repeatedInvalidKeyMessageID = 0;
|
||||||
std::atomic<int> messageIDInit = 0;
|
std::once_flag messageIDFlag;
|
||||||
}
|
}
|
||||||
|
|
||||||
void renderShape(RenderArgs* args, const ShapePlumberPointer& shapeContext, const Item& item, const ShapeKey& globalKey) {
|
void renderShape(RenderArgs* args, const ShapePlumberPointer& shapeContext, const Item& item, const ShapeKey& globalKey) {
|
||||||
|
@ -60,9 +60,8 @@ void renderShape(RenderArgs* args, const ShapePlumberPointer& shapeContext, cons
|
||||||
} else if (key.hasOwnPipeline()) {
|
} else if (key.hasOwnPipeline()) {
|
||||||
item.render(args);
|
item.render(args);
|
||||||
} else {
|
} else {
|
||||||
if (++messageIDInit == 1) {
|
std::call_once(messageIDFlag, [](int& id) { id = LogHandler::getInstance().newRepeatedMessageID(); },
|
||||||
repeatedInvalidKeyMessageID = LogHandler::getInstance().newRepeatedMessageID();
|
repeatedInvalidKeyMessageID);
|
||||||
}
|
|
||||||
HIFI_FCDEBUG_ID(renderlogging(), repeatedInvalidKeyMessageID, "Item could not be rendered with invalid key" << key);
|
HIFI_FCDEBUG_ID(renderlogging(), repeatedInvalidKeyMessageID, "Item could not be rendered with invalid key" << key);
|
||||||
}
|
}
|
||||||
args->_itemShapeKey = 0;
|
args->_itemShapeKey = 0;
|
||||||
|
@ -114,9 +113,8 @@ void render::renderStateSortShapes(const RenderContextPointer& renderContext,
|
||||||
} else if (key.hasOwnPipeline()) {
|
} else if (key.hasOwnPipeline()) {
|
||||||
ownPipelineBucket.push_back( std::make_tuple(item, key) );
|
ownPipelineBucket.push_back( std::make_tuple(item, key) );
|
||||||
} else {
|
} else {
|
||||||
if (++messageIDInit == 1) {
|
std::call_once(messageIDFlag, [](int& id) { id = LogHandler::getInstance().newRepeatedMessageID(); },
|
||||||
repeatedInvalidKeyMessageID = LogHandler::getInstance().newRepeatedMessageID();
|
repeatedInvalidKeyMessageID);
|
||||||
}
|
|
||||||
HIFI_FCDEBUG_ID(renderlogging(), repeatedInvalidKeyMessageID, "Item could not be rendered with invalid key" << key);
|
HIFI_FCDEBUG_ID(renderlogging(), repeatedInvalidKeyMessageID, "Item could not be rendered with invalid key" << key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -114,21 +114,6 @@ QString LogHandler::printMessage(LogMsgType type, const QMessageLogContext& cont
|
||||||
}
|
}
|
||||||
QMutexLocker lock(&_mutex);
|
QMutexLocker lock(&_mutex);
|
||||||
|
|
||||||
if (type == LogDebug) {
|
|
||||||
// see if this message is one we should only print once
|
|
||||||
for (auto& onceOnly : _onetimeMessages) {
|
|
||||||
if (onceOnly.regexp.indexIn(message) != -1) {
|
|
||||||
if (onceOnly.messageCount++ == 0) {
|
|
||||||
// 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
|
||||||
|
|
||||||
|
@ -184,14 +169,6 @@ void LogHandler::setupRepeatedMessageFlusher() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
const QString& LogHandler::addOnlyOnceMessageRegex(const QString& regexString) {
|
|
||||||
QMutexLocker lock(&_mutex);
|
|
||||||
OnceOnlyMessage onetimeMessage;
|
|
||||||
onetimeMessage.regexp = QRegExp(regexString);
|
|
||||||
_onetimeMessages.push_back(onetimeMessage);
|
|
||||||
return regexString;
|
|
||||||
}
|
|
||||||
|
|
||||||
int LogHandler::newRepeatedMessageID() {
|
int LogHandler::newRepeatedMessageID() {
|
||||||
QMutexLocker lock(&_mutex);
|
QMutexLocker lock(&_mutex);
|
||||||
int newMessageId = _currentMessageID;
|
int newMessageId = _currentMessageID;
|
||||||
|
|
|
@ -51,7 +51,6 @@ public:
|
||||||
/// prints various process, message type, and time information
|
/// prints various process, message type, and time information
|
||||||
static void verboseMessageHandler(QtMsgType type, const QMessageLogContext& context, const QString &message);
|
static void verboseMessageHandler(QtMsgType type, const QMessageLogContext& context, const QString &message);
|
||||||
|
|
||||||
const QString& addOnlyOnceMessageRegex(const QString& regexString);
|
|
||||||
int newRepeatedMessageID();
|
int newRepeatedMessageID();
|
||||||
void printRepeatedMessage(int messageID, LogMsgType type, const QMessageLogContext& context, const QString &message);
|
void printRepeatedMessage(int messageID, LogMsgType type, const QMessageLogContext& context, const QString &message);
|
||||||
|
|
||||||
|
@ -69,12 +68,6 @@ private:
|
||||||
bool _shouldOutputThreadID { false };
|
bool _shouldOutputThreadID { false };
|
||||||
bool _shouldDisplayMilliseconds { false };
|
bool _shouldDisplayMilliseconds { false };
|
||||||
|
|
||||||
struct OnceOnlyMessage {
|
|
||||||
QRegExp regexp;
|
|
||||||
int messageCount { 0 };
|
|
||||||
};
|
|
||||||
std::vector<OnceOnlyMessage> _onetimeMessages;
|
|
||||||
|
|
||||||
int _currentMessageID { 0 };
|
int _currentMessageID { 0 };
|
||||||
struct RepeatedMessageRecord {
|
struct RepeatedMessageRecord {
|
||||||
int repeatCount;
|
int repeatCount;
|
||||||
|
|
Loading…
Reference in a new issue