From 6f083a10ac8315f556cfb0e92f6eb5b728b05056 Mon Sep 17 00:00:00 2001 From: Eberhard Graether Date: Mon, 4 Jan 2016 16:06:32 +0100 Subject: [PATCH] src: improvements to logging * log messages as they are sent and received * log information about messages by overriding method print() * reduced logging of autocompletion list * removed log location from message and parsing logs, as they are known and make up 90% of logs --- src/lib/data/Storage.cpp | 4 ++-- src/lib/utility/logging/ConsoleLogger.cpp | 13 ++++++++----- src/lib/utility/logging/FileLogger.cpp | 13 ++++++++----- src/lib/utility/logging/logging.h | 9 +++++++++ src/lib/utility/messaging/Message.h | 7 ++++++- src/lib/utility/messaging/MessageBase.h | 13 ++++++++++++- src/lib/utility/messaging/MessageListener.h | 5 ++++- src/lib/utility/messaging/MessageQueue.cpp | 2 ++ .../utility/messaging/type/MessageActivateEdge.h | 5 +++++ .../utility/messaging/type/MessageActivateFile.h | 5 +++++ .../utility/messaging/type/MessageActivateNodes.h | 8 ++++++++ .../type/MessageActivateTokenLocations.h | 8 ++++++++ .../messaging/type/MessageActivateTokens.h | 8 ++++++++ .../messaging/type/MessageAutoRefreshChanged.h | 12 ++++++++++++ .../messaging/type/MessageFinishedParsing.h | 5 +++++ src/lib/utility/messaging/type/MessageFocusIn.h | 8 ++++++++ src/lib/utility/messaging/type/MessageFocusOut.h | 10 +++++++++- .../messaging/type/MessageGraphNodeBundleSplit.h | 5 +++++ .../messaging/type/MessageGraphNodeExpand.h | 13 +++++++++++++ .../utility/messaging/type/MessageGraphNodeMove.h | 5 +++++ .../utility/messaging/type/MessageLoadProject.h | 5 +++++ .../utility/messaging/type/MessageMoveIDECursor.h | 5 +++++ src/lib/utility/messaging/type/MessageRefresh.h | 12 ++++++++++++ .../utility/messaging/type/MessageSaveProject.h | 5 +++++ src/lib/utility/messaging/type/MessageSearch.h | 5 +++++ .../messaging/type/MessageSearchAutocomplete.h | 5 +++++ src/lib/utility/messaging/type/MessageShowFile.h | 5 +++++ src/lib/utility/messaging/type/MessageShowScope.h | 5 +++++ .../utility/messaging/type/MessageShowSnippets.h | 7 ++++++- src/lib/utility/messaging/type/MessageStatus.h | 15 +++++++++++++++ .../messaging/type/MessageSwitchColorScheme.h | 5 +++++ src/lib/utility/messaging/type/MessageZoom.h | 12 ++++++++++++ 32 files changed, 227 insertions(+), 17 deletions(-) diff --git a/src/lib/data/Storage.cpp b/src/lib/data/Storage.cpp index 96fcffa1..05fd04f0 100644 --- a/src/lib/data/Storage.cpp +++ b/src/lib/data/Storage.cpp @@ -819,7 +819,7 @@ std::vector Storage::getAutocompletionMatches(const std::string& qu m_cachedQuery = query; std::vector matches = SearchIndex::getMatches(m_cachedResults, query); - SearchMatch::log(matches, query); + LOG_INFO_STREAM(<< matches.size() << " matches for \"" << query << "\""); if (matches.size() > 100) { @@ -1803,7 +1803,7 @@ void Storage::buildHierarchyCache() void Storage::log(std::string type, std::string str, const ParseLocation& location) const { - LOG_INFO_STREAM( + LOG_INFO_STREAM_BARE( << type << ": " << str << " <" << location.filePath.str() << " " << location.startLineNumber << ":" << location.startColumnNumber << " " << location.endLineNumber << ":" << location.endColumnNumber << ">" diff --git a/src/lib/utility/logging/ConsoleLogger.cpp b/src/lib/utility/logging/ConsoleLogger.cpp index 87a9f1bc..ba6507e5 100644 --- a/src/lib/utility/logging/ConsoleLogger.cpp +++ b/src/lib/utility/logging/ConsoleLogger.cpp @@ -28,9 +28,12 @@ void ConsoleLogger::logError(const LogMessage& message) void ConsoleLogger::logMessage(const std::string& type, const LogMessage& message) { - std::cout - << message.getTimeString("%H:%M:%S") << " | " - << message.getFileName() << ':' << message.line << ' ' << message.functionName << "() | " - << type << ": " << message.message - << std::endl; + std::cout << message.getTimeString("%H:%M:%S") << " | "; + + if (message.filePath.size()) + { + std::cout << message.getFileName() << ':' << message.line << ' ' << message.functionName << "() | "; + } + + std::cout << type << ": " << message.message << std::endl; } diff --git a/src/lib/utility/logging/FileLogger.cpp b/src/lib/utility/logging/FileLogger.cpp index 84712755..ece3e44c 100644 --- a/src/lib/utility/logging/FileLogger.cpp +++ b/src/lib/utility/logging/FileLogger.cpp @@ -65,10 +65,13 @@ void FileLogger::logMessage(const std::string& type, const LogMessage& message) { std::ofstream fileStream; fileStream.open(s_filePath + m_fileName, std::ios::app); - fileStream - << message.getTimeString("%H:%M:%S") << " | " - << message.getFileName() << ':' << message.line << ' ' << message.functionName << "() | " - << type << ": " << message.message - << std::endl; + fileStream << message.getTimeString("%H:%M:%S") << " | "; + + if (message.filePath.size()) + { + fileStream << message.getFileName() << ':' << message.line << ' ' << message.functionName << "() | "; + } + + fileStream << type << ": " << message.message << std::endl; fileStream.close(); } diff --git a/src/lib/utility/logging/logging.h b/src/lib/utility/logging/logging.h index c40f6796..668eaa10 100644 --- a/src/lib/utility/logging/logging.h +++ b/src/lib/utility/logging/logging.h @@ -56,4 +56,13 @@ } \ while(0) \ +#define LOG_INFO_STREAM_BARE(__s__) \ + do \ + { \ + std::stringstream __ss__; \ + __ss__ __s__; \ + LogManager::getInstance()->logInfo(__ss__.str(), "", "", 0); \ + } \ + while(0) \ + #endif // LOGGING_H diff --git a/src/lib/utility/messaging/Message.h b/src/lib/utility/messaging/Message.h index 09147907..a74b61a9 100644 --- a/src/lib/utility/messaging/Message.h +++ b/src/lib/utility/messaging/Message.h @@ -8,7 +8,8 @@ #include "utility/messaging/MessageQueue.h" template -class Message: public MessageBase +class Message + : public MessageBase { public: @@ -32,6 +33,10 @@ public: std::shared_ptr message = std::make_shared(*dynamic_cast(this)); MessageQueue::getInstance()->processMessage(message, true); } + + virtual void print(std::ostream& os) const + { + } }; #endif // MESSAGE_H diff --git a/src/lib/utility/messaging/MessageBase.h b/src/lib/utility/messaging/MessageBase.h index 683fc57a..4501b701 100644 --- a/src/lib/utility/messaging/MessageBase.h +++ b/src/lib/utility/messaging/MessageBase.h @@ -1,7 +1,8 @@ #ifndef MESSAGE_BASE_H #define MESSAGE_BASE_H -#include +#include +#include class MessageBase { @@ -58,6 +59,16 @@ public: return m_keepContent; } + virtual void print(std::ostream& os) const = 0; + + std::string str() const + { + std::stringstream ss; + ss << getType() << " "; + print(ss); + return ss.str(); + } + UndoType undoRedoType; private: diff --git a/src/lib/utility/messaging/MessageListener.h b/src/lib/utility/messaging/MessageListener.h index a599c0f6..d0ddbbeb 100644 --- a/src/lib/utility/messaging/MessageListener.h +++ b/src/lib/utility/messaging/MessageListener.h @@ -3,12 +3,14 @@ #include +#include "utility/logging/logging.h" #include "utility/messaging/MessageBase.h" #include "utility/messaging/MessageListenerBase.h" #include "utility/messaging/MessageQueue.h" template -class MessageListener: public MessageListenerBase +class MessageListener + : public MessageListenerBase { public: MessageListener() @@ -23,6 +25,7 @@ private: virtual void doHandleMessageBase(MessageBase* message) { + LOG_INFO_STREAM_BARE(<< "handle " << message->str()); handleMessage(dynamic_cast(message)); } diff --git a/src/lib/utility/messaging/MessageQueue.cpp b/src/lib/utility/messaging/MessageQueue.cpp index 9b6c6baf..d13f4444 100644 --- a/src/lib/utility/messaging/MessageQueue.cpp +++ b/src/lib/utility/messaging/MessageQueue.cpp @@ -74,6 +74,8 @@ void MessageQueue::pushMessage(std::shared_ptr message) void MessageQueue::processMessage(std::shared_ptr message, bool asNextTask) { + LOG_INFO_STREAM_BARE(<< "send " << message->str()); + if (m_sendMessagesAsTasks && message->sendAsTask()) { sendMessageAsTask(message, asNextTask); diff --git a/src/lib/utility/messaging/type/MessageActivateEdge.h b/src/lib/utility/messaging/type/MessageActivateEdge.h index 3075748e..1482b724 100644 --- a/src/lib/utility/messaging/type/MessageActivateEdge.h +++ b/src/lib/utility/messaging/type/MessageActivateEdge.h @@ -35,6 +35,11 @@ public: return Edge::getTypeString(type) + ":" + fromNameHierarchy.getFullName() + "->" + toNameHierarchy.getFullName(); } + virtual void print(std::ostream& os) const + { + os << tokenId << " - " << getFullName(); + } + const Id tokenId; const Edge::EdgeType type; const NameHierarchy fromNameHierarchy; diff --git a/src/lib/utility/messaging/type/MessageActivateFile.h b/src/lib/utility/messaging/type/MessageActivateFile.h index ec67c82b..bb0452a8 100644 --- a/src/lib/utility/messaging/type/MessageActivateFile.h +++ b/src/lib/utility/messaging/type/MessageActivateFile.h @@ -17,6 +17,11 @@ public: return "MessageActivateFile"; } + virtual void print(std::ostream& os) const + { + os << filePath.str(); + } + const FilePath filePath; }; diff --git a/src/lib/utility/messaging/type/MessageActivateNodes.h b/src/lib/utility/messaging/type/MessageActivateNodes.h index 7d0abc4a..c4340335 100644 --- a/src/lib/utility/messaging/type/MessageActivateNodes.h +++ b/src/lib/utility/messaging/type/MessageActivateNodes.h @@ -37,6 +37,14 @@ public: return "MessageActivateNodes"; } + virtual void print(std::ostream& os) const + { + for (const ActiveNode& node : nodes) + { + os << node.nodeId << " "; + } + } + std::vector nodes; bool isFromSystem; diff --git a/src/lib/utility/messaging/type/MessageActivateTokenLocations.h b/src/lib/utility/messaging/type/MessageActivateTokenLocations.h index 5040ec7b..e37f42cf 100644 --- a/src/lib/utility/messaging/type/MessageActivateTokenLocations.h +++ b/src/lib/utility/messaging/type/MessageActivateTokenLocations.h @@ -18,6 +18,14 @@ public: return "MessageActivateTokenLocations"; } + virtual void print(std::ostream& os) const + { + for (const Id& id : locationIds) + { + os << id << " "; + } + } + const std::vector locationIds; }; diff --git a/src/lib/utility/messaging/type/MessageActivateTokens.h b/src/lib/utility/messaging/type/MessageActivateTokens.h index 6932008b..b02eb3a3 100644 --- a/src/lib/utility/messaging/type/MessageActivateTokens.h +++ b/src/lib/utility/messaging/type/MessageActivateTokens.h @@ -22,6 +22,14 @@ public: return "MessageActivateTokens"; } + virtual void print(std::ostream& os) const + { + for (const Id& id : tokenIds) + { + os << id << " "; + } + } + const std::vector tokenIds; bool isEdge; diff --git a/src/lib/utility/messaging/type/MessageAutoRefreshChanged.h b/src/lib/utility/messaging/type/MessageAutoRefreshChanged.h index 004d728e..1ac372af 100644 --- a/src/lib/utility/messaging/type/MessageAutoRefreshChanged.h +++ b/src/lib/utility/messaging/type/MessageAutoRefreshChanged.h @@ -16,6 +16,18 @@ public: return "MessageAutoRefreshChanged"; } + virtual void print(std::ostream& os) const + { + if (enabled) + { + os << "enabled"; + } + else + { + os << "disabled"; + } + } + bool enabled; }; diff --git a/src/lib/utility/messaging/type/MessageFinishedParsing.h b/src/lib/utility/messaging/type/MessageFinishedParsing.h index b5217663..49087bc2 100644 --- a/src/lib/utility/messaging/type/MessageFinishedParsing.h +++ b/src/lib/utility/messaging/type/MessageFinishedParsing.h @@ -41,6 +41,11 @@ public: return ss.str(); } + virtual void print(std::ostream& os) const + { + os << getStatusStr(); + } + size_t fileCount; size_t totalFileCount; float parseTime; diff --git a/src/lib/utility/messaging/type/MessageFocusIn.h b/src/lib/utility/messaging/type/MessageFocusIn.h index 70ed99c1..7b121ee0 100644 --- a/src/lib/utility/messaging/type/MessageFocusIn.h +++ b/src/lib/utility/messaging/type/MessageFocusIn.h @@ -20,6 +20,14 @@ public: return "MessageFocusIn"; } + virtual void print(std::ostream& os) const + { + for (const Id& id : tokenIds) + { + os << id << " "; + } + } + const std::vector tokenIds; }; diff --git a/src/lib/utility/messaging/type/MessageFocusOut.h b/src/lib/utility/messaging/type/MessageFocusOut.h index 2ab89e0d..072d8a05 100644 --- a/src/lib/utility/messaging/type/MessageFocusOut.h +++ b/src/lib/utility/messaging/type/MessageFocusOut.h @@ -17,7 +17,15 @@ public: static const std::string getStaticType() { - return "MessageHoverLeave"; + return "MessageFocusOut"; + } + + virtual void print(std::ostream& os) const + { + for (const Id& id : tokenIds) + { + os << id << " "; + } } const std::vector tokenIds; diff --git a/src/lib/utility/messaging/type/MessageGraphNodeBundleSplit.h b/src/lib/utility/messaging/type/MessageGraphNodeBundleSplit.h index 4475d0df..0be5ec28 100644 --- a/src/lib/utility/messaging/type/MessageGraphNodeBundleSplit.h +++ b/src/lib/utility/messaging/type/MessageGraphNodeBundleSplit.h @@ -18,6 +18,11 @@ public: return "MessageGraphNodeBundleSplit"; } + virtual void print(std::ostream& os) const + { + os << bundleId; + } + Id bundleId; }; diff --git a/src/lib/utility/messaging/type/MessageGraphNodeExpand.h b/src/lib/utility/messaging/type/MessageGraphNodeExpand.h index 104644aa..c6ea5655 100644 --- a/src/lib/utility/messaging/type/MessageGraphNodeExpand.h +++ b/src/lib/utility/messaging/type/MessageGraphNodeExpand.h @@ -19,6 +19,19 @@ public: return "MessageGraphNodeExpand"; } + virtual void print(std::ostream& os) const + { + os << tokenId << " "; + if (expand) + { + os << "expand"; + } + else + { + os << "collapse"; + } + } + const Id tokenId; const bool expand; }; diff --git a/src/lib/utility/messaging/type/MessageGraphNodeMove.h b/src/lib/utility/messaging/type/MessageGraphNodeMove.h index 70bb7254..5b2d66a6 100644 --- a/src/lib/utility/messaging/type/MessageGraphNodeMove.h +++ b/src/lib/utility/messaging/type/MessageGraphNodeMove.h @@ -20,6 +20,11 @@ public: return "MessageGraphNodeMove"; } + virtual void print(std::ostream& os) const + { + os << tokenId << " " << delta.toString(); + } + const Id tokenId; const Vec2i delta; }; diff --git a/src/lib/utility/messaging/type/MessageLoadProject.h b/src/lib/utility/messaging/type/MessageLoadProject.h index c3509868..2b6c8e08 100644 --- a/src/lib/utility/messaging/type/MessageLoadProject.h +++ b/src/lib/utility/messaging/type/MessageLoadProject.h @@ -16,6 +16,11 @@ public: return "MessageLoadProject"; } + virtual void print(std::ostream& os) const + { + os << projectSettingsFilePath; + } + const std::string projectSettingsFilePath; }; diff --git a/src/lib/utility/messaging/type/MessageMoveIDECursor.h b/src/lib/utility/messaging/type/MessageMoveIDECursor.h index aa9c4733..03a46672 100644 --- a/src/lib/utility/messaging/type/MessageMoveIDECursor.h +++ b/src/lib/utility/messaging/type/MessageMoveIDECursor.h @@ -18,6 +18,11 @@ public: return "MessageMoveIDECursor"; } + virtual void print(std::ostream& os) const + { + os << FilePosition << ":" << Row << ":" << Column; + } + const std::string FilePosition; const unsigned int Row; const unsigned int Column; diff --git a/src/lib/utility/messaging/type/MessageRefresh.h b/src/lib/utility/messaging/type/MessageRefresh.h index c3855969..7dc96c9c 100644 --- a/src/lib/utility/messaging/type/MessageRefresh.h +++ b/src/lib/utility/messaging/type/MessageRefresh.h @@ -29,6 +29,18 @@ public: return *this; } + virtual void print(std::ostream& os) const + { + if (uiOnly) + { + os << "ui "; + } + if (all) + { + os << "all"; + } + } + bool uiOnly; bool all; }; diff --git a/src/lib/utility/messaging/type/MessageSaveProject.h b/src/lib/utility/messaging/type/MessageSaveProject.h index a2dc3c52..36957ed2 100644 --- a/src/lib/utility/messaging/type/MessageSaveProject.h +++ b/src/lib/utility/messaging/type/MessageSaveProject.h @@ -16,6 +16,11 @@ public: return "MessageSaveProject"; } + virtual void print(std::ostream& os) const + { + os << projectSettingsFilePath; + } + const std::string projectSettingsFilePath; }; diff --git a/src/lib/utility/messaging/type/MessageSearch.h b/src/lib/utility/messaging/type/MessageSearch.h index 195ccb4d..52fef4ac 100644 --- a/src/lib/utility/messaging/type/MessageSearch.h +++ b/src/lib/utility/messaging/type/MessageSearch.h @@ -30,6 +30,11 @@ public: return m_matches; } + virtual void print(std::ostream& os) const + { + os << getMatchesAsString(); + } + private: const std::vector m_matches; }; diff --git a/src/lib/utility/messaging/type/MessageSearchAutocomplete.h b/src/lib/utility/messaging/type/MessageSearchAutocomplete.h index 53e31a78..df3b322c 100644 --- a/src/lib/utility/messaging/type/MessageSearchAutocomplete.h +++ b/src/lib/utility/messaging/type/MessageSearchAutocomplete.h @@ -17,6 +17,11 @@ public: return "MessageSearchAutocomplete"; } + virtual void print(std::ostream& os) const + { + os << query; + } + const std::string query; }; diff --git a/src/lib/utility/messaging/type/MessageShowFile.h b/src/lib/utility/messaging/type/MessageShowFile.h index ec63acd2..b6b6ca78 100644 --- a/src/lib/utility/messaging/type/MessageShowFile.h +++ b/src/lib/utility/messaging/type/MessageShowFile.h @@ -20,6 +20,11 @@ public: return "MessageShowFile"; } + virtual void print(std::ostream& os) const + { + os << filePath.str(); + } + const FilePath filePath; const bool showErrors; }; diff --git a/src/lib/utility/messaging/type/MessageShowScope.h b/src/lib/utility/messaging/type/MessageShowScope.h index 7c76af9f..d6b59968 100644 --- a/src/lib/utility/messaging/type/MessageShowScope.h +++ b/src/lib/utility/messaging/type/MessageShowScope.h @@ -18,6 +18,11 @@ public: return "MessageShowScope"; } + virtual void print(std::ostream& os) const + { + os << scopeLocationId; + } + const Id scopeLocationId; }; diff --git a/src/lib/utility/messaging/type/MessageShowSnippets.h b/src/lib/utility/messaging/type/MessageShowSnippets.h index be6efc4f..1f55aeaa 100644 --- a/src/lib/utility/messaging/type/MessageShowSnippets.h +++ b/src/lib/utility/messaging/type/MessageShowSnippets.h @@ -4,7 +4,7 @@ #include "utility/messaging/Message.h" #include "utility/types.h" -class TokenLocationFile; +#include "data/location/TokenLocationFile.h" class MessageShowSnippets : public Message @@ -20,6 +20,11 @@ public: return "MessageShowSnippets"; } + virtual void print(std::ostream& os) const + { + os << locationFile->getFilePath().str(); + } + std::shared_ptr locationFile; }; diff --git a/src/lib/utility/messaging/type/MessageStatus.h b/src/lib/utility/messaging/type/MessageStatus.h index 7a04539d..722ae357 100644 --- a/src/lib/utility/messaging/type/MessageStatus.h +++ b/src/lib/utility/messaging/type/MessageStatus.h @@ -20,6 +20,21 @@ public: return "MessageStatus"; } + virtual void print(std::ostream& os) const + { + os << status; + + if (isError) + { + os << " - error"; + } + + if (showLoader) + { + os << " - loading"; + } + } + const std::string status; const bool isError; const bool showLoader; diff --git a/src/lib/utility/messaging/type/MessageSwitchColorScheme.h b/src/lib/utility/messaging/type/MessageSwitchColorScheme.h index 0b7f7dc6..407c5ab8 100644 --- a/src/lib/utility/messaging/type/MessageSwitchColorScheme.h +++ b/src/lib/utility/messaging/type/MessageSwitchColorScheme.h @@ -17,6 +17,11 @@ public: return "MessageSwitchColorScheme"; } + virtual void print(std::ostream& os) const + { + os << colorSchemeFilePath; + } + const std::string colorSchemeFilePath; }; diff --git a/src/lib/utility/messaging/type/MessageZoom.h b/src/lib/utility/messaging/type/MessageZoom.h index 989733c5..49b319ff 100644 --- a/src/lib/utility/messaging/type/MessageZoom.h +++ b/src/lib/utility/messaging/type/MessageZoom.h @@ -17,6 +17,18 @@ public: return "MessageZoom"; } + virtual void print(std::ostream& os) const + { + if (zoomIn) + { + os << "in"; + } + else + { + os << "out"; + } + } + const bool zoomIn; };