76 return "Meta.LogViewer";
82 return QIcon(
"://icons/papyrus.svg");
88 return QIcon(
"://icons/papyrus.svg");
91 QPointer<QWidget> getCustomTitlebarWidget(QWidget* parent)
override;
94 void onInitComponent()
override;
95 void onConnectComponent()
override;
96 void onExitComponent()
override;
99 void write(
const std::string& who,
101 const std::string& tag,
102 MessageType severity,
103 const std::string& message,
104 const std::string& file,
106 const std::string& function,
107 const Ice::Current& = Ice::emptyCurrent);
108 void writeLog(
const LogMessage& msg,
const Ice::Current& = Ice::emptyCurrent)
override;
112 LogTable* addFilter(QString filterId,
114 QString loggingGroup,
115 QString componentFilter,
117 MessageType minimumVerbosity,
118 QString messageFilter,
120 QString functionFilter);
122 bool checkAndAddNewFilter(
const QString& loggingGroupName,
const QString& componentName);
126 void performLiveFilter(QString searchStr,
int startRow = 0);
127 void performLiveSearch(QString searchStr);
128 void clearSelectedLog();
130 void pauseLogging(
bool pause =
false);
132 void editFilter(QTreeWidgetItem* item,
int column);
133 void removeSelectedFilter();
134 void removeFilter(QTreeWidgetItem* item);
135 void filterSelectionChanged(QTreeWidgetItem* item, QTreeWidgetItem* previous);
136 void insertPendingEntries();
137 void searchTypeChanged(
int index);
138 void selectNextSearchResult();
139 void selectPreviousSearchResult();
140 void updateFilterList();
141 void OpenConfigureDialog();
143 void refreshLabelsPanel();
145 void labelClicked(QListWidgetItem* item);
147 void showLabelsContextMenu(
const QPoint& pos);
149 void removeSelectedLabel();
161 QString loggingGroupNameToFilterName(
const QString& loggingGroupName)
const;
165 void sortFilterList();
169 QString autoFilterId(
const QString& loggingGroupName,
const QString& componentName)
const;
173 LogTable* ensureAutoFilter(
const QString& filterId,
174 const QString& loggingGroupName,
175 const QString& componentName,
179 void ingestBatch(
LogTable* table,
const std::vector<LogSeq>& seqs);
187 void expireOrphanedMarkers();
193 static constexpr std::size_t maxStoredEntries = 10000000;
203 std::atomic<bool> loggingPaused;
206 std::atomic<int> verbosityLevel;
208 IceUtil::Time lastLiveSearchEditChangeTime;
209 std::map<QString, LogTable*> filterMap;
215 QHash<QString, LogTable*> autoFilterMap;
220 std::vector<LogTable*> generalFilters;
222 std::vector<LogMessage> pendingEntries;
227 static constexpr std::size_t maxPendingEntries = 50000;
230 static constexpr std::size_t maxEntriesPerTick = 2000;
234 std::atomic<unsigned long long> droppedEntryCount{0};
236 unsigned long long lastReportedDropCount = 0;
243 MessageType level = eUNDEFINED;
246 std::map<QString, FilterBadge> filterBadgeCache;
248 mutable std::mutex pendingEntriesMutex;
249 QTimer* pendingEntriesTimer;
250 QTimer* filterBadgeTimer;
251 QToolBar* customToolbar;