Merge pull request #12079 from RebeccaStankus/log-filtering

Log filtering
This commit is contained in:
Ryan Downe Karpf 2018-01-05 08:40:41 -08:00 committed by GitHub
commit a3245aec57
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 377 additions and 56 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 B

View file

@ -67,8 +67,22 @@ QPushButton#revealLogButton {
font-size: 11px;
}
QPushButton#showAllButton {
font-family: Helvetica, Arial, sans-serif;
background-color: #333333;
color: #BBBBBB;
border-width: 0;
border-radius: 9px;
font-size: 11px;
}
QCheckBox {
font-family: Helvetica, Arial, sans-serif;
text-align: center;
color: #3d3d3d;
border-width: 0;
border-radius: 9px;
font-size: 11px;
}
QCheckBox::indicator:unchecked {
@ -77,4 +91,25 @@ QCheckBox::indicator:unchecked {
QCheckBox::indicator:checked {
image: url(styles/checked.svg);
}
QComboBox {
font-family: Helvetica, Arial, sans-serif;
text-align: center;
background-color: #CCCCCC;
color: #3d3d3d;
border-width: 0;
border-radius: 9px;
font-size: 11px;
padding-left: 7px;
}
QComboBox::drop-down {
border-width: 0px;
padding-right: 7px;
}
QComboBox::down-arrow {
image: url(styles/filter.png);
border-width: 0px;
}

View file

@ -16,11 +16,10 @@
#include <QPlainTextEdit>
#include <QTextCursor>
#include <QPushButton>
#include <QSyntaxHighlighter>
#include <PathUtils.h>
const int TOP_BAR_HEIGHT = 46;
const int TOP_BAR_HEIGHT = 124;
const int INITIAL_WIDTH = 720;
const int INITIAL_HEIGHT = 480;
const int MINIMAL_WIDTH = 700;
@ -34,21 +33,6 @@ const QColor HIGHLIGHT_COLOR = QColor("#3366CC");
const QColor BOLD_COLOR = QColor("#445c8c");
const QString BOLD_PATTERN = "\\[\\d*\\/.*:\\d*:\\d*\\]";
class Highlighter : public QSyntaxHighlighter {
public:
Highlighter(QTextDocument* parent = nullptr);
void setBold(int indexToBold);
QString keyword;
protected:
void highlightBlock(const QString& text) override;
private:
QTextCharFormat boldFormat;
QTextCharFormat keywordFormat;
};
BaseLogDialog::BaseLogDialog(QWidget* parent) : QDialog(parent, Qt::Window) {
setWindowTitle("Base Log");
setAttribute(Qt::WA_DeleteOnClose);
@ -77,7 +61,7 @@ void BaseLogDialog::initControls() {
_searchButton->setGeometry(_leftPad, ELEMENT_MARGIN, SEARCH_BUTTON_WIDTH, ELEMENT_HEIGHT);
_leftPad += SEARCH_BUTTON_WIDTH;
_searchButton->show();
connect(_searchButton, SIGNAL(clicked()), SLOT(handleSearchButton()));
connect(_searchButton, &QPushButton::clicked, this, &BaseLogDialog::handleSearchButton);
_searchTextBox = new QLineEdit(this);
// disable blue outline in Mac
@ -85,8 +69,8 @@ void BaseLogDialog::initControls() {
_searchTextBox->setGeometry(_leftPad, ELEMENT_MARGIN, SEARCH_TEXT_WIDTH, ELEMENT_HEIGHT);
_leftPad += SEARCH_TEXT_WIDTH + BUTTON_MARGIN;
_searchTextBox->show();
connect(_searchTextBox, SIGNAL(textChanged(QString)), SLOT(handleSearchTextChanged(QString)));
connect(_searchTextBox, SIGNAL(returnPressed()), SLOT(toggleSearchNext()));
connect(_searchTextBox, &QLineEdit::textChanged, this, &BaseLogDialog::handleSearchTextChanged);
connect(_searchTextBox, &QLineEdit::returnPressed, this, &BaseLogDialog::toggleSearchNext);
_searchPrevButton = new QPushButton(this);
_searchPrevButton->setObjectName("searchPrevButton");
@ -94,7 +78,7 @@ void BaseLogDialog::initControls() {
_searchPrevButton->setText("Prev");
_leftPad += SEARCH_TOGGLE_BUTTON_WIDTH + BUTTON_MARGIN;
_searchPrevButton->show();
connect(_searchPrevButton, SIGNAL(clicked()), SLOT(toggleSearchPrev()));
connect(_searchPrevButton, &QPushButton::clicked, this, &BaseLogDialog::toggleSearchPrev);
_searchNextButton = new QPushButton(this);
_searchNextButton->setObjectName("searchNextButton");
@ -102,16 +86,16 @@ void BaseLogDialog::initControls() {
_searchNextButton->setText("Next");
_leftPad += SEARCH_TOGGLE_BUTTON_WIDTH + CHECKBOX_MARGIN;
_searchNextButton->show();
connect(_searchNextButton, SIGNAL(clicked()), SLOT(toggleSearchNext()));
connect(_searchNextButton, &QPushButton::clicked, this, &BaseLogDialog::toggleSearchNext);
_logTextBox = new QPlainTextEdit(this);
_logTextBox->setReadOnly(true);
_logTextBox->show();
_highlighter = new Highlighter(_logTextBox->document());
connect(_logTextBox, SIGNAL(selectionChanged()), SLOT(updateSelection()));
connect(_logTextBox, &QPlainTextEdit::selectionChanged, this, &BaseLogDialog::updateSelection);
}
void BaseLogDialog::showEvent(QShowEvent* event) {
void BaseLogDialog::showEvent(QShowEvent* event) {
showLogData();
}
@ -132,15 +116,12 @@ void BaseLogDialog::handleSearchButton() {
}
void BaseLogDialog::handleSearchTextChanged(QString searchText) {
if (searchText.isEmpty()) {
return;
}
QTextCursor cursor = _logTextBox->textCursor();
if (cursor.hasSelection()) {
QString selectedTerm = cursor.selectedText();
if (selectedTerm == searchText) {
return;
return;
}
}
@ -158,6 +139,10 @@ void BaseLogDialog::handleSearchTextChanged(QString searchText) {
_highlighter->rehighlight();
}
void BaseLogDialog::clearSearch() {
_searchTextBox->setText("");
}
void BaseLogDialog::toggleSearchPrev() {
QTextCursor searchCursor = _logTextBox->textCursor();
if (searchCursor.hasSelection()) {

View file

@ -13,17 +13,33 @@
#define hifi_BaseLogDialog_h
#include <QDialog>
#include <QSyntaxHighlighter>
const int ELEMENT_MARGIN = 7;
const int ELEMENT_HEIGHT = 32;
const int CHECKBOX_MARGIN = 12;
const int CHECKBOX_WIDTH = 140;
const int CHECKBOX_WIDTH = 110;
const int COMBOBOX_WIDTH = 160;
const int BUTTON_MARGIN = 8;
class QPushButton;
class QLineEdit;
class QPlainTextEdit;
class Highlighter;
class Highlighter : public QSyntaxHighlighter {
public:
Highlighter(QTextDocument* parent = nullptr);
void setBold(int indexToBold);
QString keyword;
protected:
void highlightBlock(const QString& text) override;
private:
QTextCharFormat boldFormat;
QTextCharFormat keywordFormat;
};
class BaseLogDialog : public QDialog {
Q_OBJECT
@ -33,7 +49,7 @@ public:
~BaseLogDialog();
public slots:
void appendLogLine(QString logLine);
virtual void appendLogLine(QString logLine);
private slots:
void updateSelection();
@ -43,21 +59,22 @@ private slots:
void toggleSearchNext();
protected:
int _leftPad { 0 };
int _leftPad{ 0 };
QString _searchTerm;
QPlainTextEdit* _logTextBox{ nullptr };
Highlighter* _highlighter{ nullptr };
void resizeEvent(QResizeEvent* event) override;
void showEvent(QShowEvent* event) override;
virtual QString getCurrentLog() = 0;
void clearSearch();
private:
QPushButton* _searchButton { nullptr };
QLineEdit* _searchTextBox { nullptr };
QPlainTextEdit* _logTextBox { nullptr };
QPushButton* _searchPrevButton { nullptr };
QPushButton* _searchNextButton { nullptr };
QString _searchTerm;
Highlighter* _highlighter { nullptr };
QPushButton* _searchButton{ nullptr };
QLineEdit* _searchTextBox{ nullptr };
QPushButton* _searchPrevButton{ nullptr };
QPushButton* _searchNextButton{ nullptr };
void initControls();
void showLogData();
};

View file

@ -13,48 +13,287 @@
#include <QCheckBox>
#include <QPushButton>
#include <QComboBox>
#include <QPlainTextEdit>
#include <shared/AbstractLoggerInterface.h>
const int REVEAL_BUTTON_WIDTH = 122;
const int CLEAR_FILTER_BUTTON_WIDTH = 80;
const int MARGIN_LEFT = 25;
const int DEBUG_CHECKBOX_WIDTH = 70;
const int INFO_CHECKBOX_WIDTH = 65;
const int CRITICAL_CHECKBOX_WIDTH = 85;
const int WARNING_CHECKBOX_WIDTH = 80;
const int SUPPRESS_CHECKBOX_WIDTH = 87;
const int FATAL_CHECKBOX_WIDTH = 70;
const int UNKNOWN_CHECKBOX_WIDTH = 80;
const int SECOND_ROW = ELEMENT_MARGIN + ELEMENT_MARGIN + ELEMENT_HEIGHT;
const int THIRD_ROW = SECOND_ROW + ELEMENT_MARGIN + ELEMENT_HEIGHT;
const QString DEBUG_TEXT = "[DEBUG]";
const QString INFO_TEXT = "[INFO]";
const QString CRITICAL_TEXT = "[CRITICAL]";
const QString WARNING_TEXT = "[WARNING]";
const QString FATAL_TEXT = "[FATAL]";
const QString SUPPRESS_TEXT = "[SUPPRESS]";
const QString UNKNOWN_TEXT = "[UNKNOWN]";
LogDialog::LogDialog(QWidget* parent, AbstractLoggerInterface* logger) : BaseLogDialog(parent) {
_logger = logger;
setWindowTitle("Log");
_extraDebuggingBox = new QCheckBox("Extra debugging", this);
_extraDebuggingBox->setGeometry(_leftPad, ELEMENT_MARGIN, CHECKBOX_WIDTH, ELEMENT_HEIGHT);
if (_logger->extraDebugging()) {
_extraDebuggingBox->setCheckState(Qt::Checked);
}
_extraDebuggingBox->show();
connect(_extraDebuggingBox, SIGNAL(stateChanged(int)), SLOT(handleExtraDebuggingCheckbox(int)));
_revealLogButton = new QPushButton("Reveal log file", this);
// set object name for css styling
_revealLogButton->setObjectName("revealLogButton");
_revealLogButton->show();
connect(_revealLogButton, SIGNAL(clicked()), SLOT(handleRevealButton()));
connect(_revealLogButton, &QPushButton::clicked, this, &LogDialog::handleRevealButton);
connect(_logger, SIGNAL(logReceived(QString)), this, SLOT(appendLogLine(QString)), Qt::QueuedConnection);
connect(_logger, &AbstractLoggerInterface::logReceived, this, &LogDialog::appendLogLine);
_leftPad = MARGIN_LEFT;
_debugPrintBox = new QCheckBox("DEBUG", this);
_debugPrintBox->setGeometry(_leftPad, SECOND_ROW, DEBUG_CHECKBOX_WIDTH, ELEMENT_HEIGHT);
if (_logger->debugPrint()) {
_debugPrintBox->setCheckState(Qt::Checked);
}
_debugPrintBox->show();
connect(_debugPrintBox, &QCheckBox::stateChanged, this, &LogDialog::handleDebugPrintBox);
_leftPad += DEBUG_CHECKBOX_WIDTH + BUTTON_MARGIN;
_infoPrintBox = new QCheckBox("INFO", this);
_infoPrintBox->setGeometry(_leftPad, SECOND_ROW, INFO_CHECKBOX_WIDTH, ELEMENT_HEIGHT);
if (_logger->infoPrint()) {
_infoPrintBox->setCheckState(Qt::Checked);
}
_infoPrintBox->show();
connect(_infoPrintBox, &QCheckBox::stateChanged, this, &LogDialog::handleInfoPrintBox);
_leftPad += INFO_CHECKBOX_WIDTH + BUTTON_MARGIN;
_criticalPrintBox = new QCheckBox("CRITICAL", this);
_criticalPrintBox->setGeometry(_leftPad, SECOND_ROW, CRITICAL_CHECKBOX_WIDTH, ELEMENT_HEIGHT);
if (_logger->criticalPrint()) {
_criticalPrintBox->setCheckState(Qt::Checked);
}
_criticalPrintBox->show();
connect(_criticalPrintBox, &QCheckBox::stateChanged, this, &LogDialog::handleCriticalPrintBox);
_leftPad += CRITICAL_CHECKBOX_WIDTH + BUTTON_MARGIN;
_warningPrintBox = new QCheckBox("WARNING", this);
_warningPrintBox->setGeometry(_leftPad, SECOND_ROW, WARNING_CHECKBOX_WIDTH, ELEMENT_HEIGHT);
if (_logger->warningPrint()) {
_warningPrintBox->setCheckState(Qt::Checked);
}
_warningPrintBox->show();
connect(_warningPrintBox, &QCheckBox::stateChanged, this, &LogDialog::handleWarningPrintBox);
_leftPad += WARNING_CHECKBOX_WIDTH + BUTTON_MARGIN;
_suppressPrintBox = new QCheckBox("SUPPRESS", this);
_suppressPrintBox->setGeometry(_leftPad, SECOND_ROW, SUPPRESS_CHECKBOX_WIDTH, ELEMENT_HEIGHT);
if (_logger->suppressPrint()) {
_suppressPrintBox->setCheckState(Qt::Checked);
}
_suppressPrintBox->show();
connect(_suppressPrintBox, &QCheckBox::stateChanged, this, &LogDialog::handleSuppressPrintBox);
_leftPad += SUPPRESS_CHECKBOX_WIDTH + BUTTON_MARGIN;
_fatalPrintBox = new QCheckBox("FATAL", this);
_fatalPrintBox->setGeometry(_leftPad, SECOND_ROW, FATAL_CHECKBOX_WIDTH, ELEMENT_HEIGHT);
if (_logger->fatalPrint()) {
_fatalPrintBox->setCheckState(Qt::Checked);
}
_fatalPrintBox->show();
connect(_fatalPrintBox, &QCheckBox::stateChanged, this, &LogDialog::handleFatalPrintBox);
_leftPad += FATAL_CHECKBOX_WIDTH + BUTTON_MARGIN;
_unknownPrintBox = new QCheckBox("UNKNOWN", this);
_unknownPrintBox->setGeometry(_leftPad, SECOND_ROW, UNKNOWN_CHECKBOX_WIDTH, ELEMENT_HEIGHT);
if (_logger->unknownPrint()) {
_unknownPrintBox->setCheckState(Qt::Checked);
}
_unknownPrintBox->show();
connect(_unknownPrintBox, &QCheckBox::stateChanged, this, &LogDialog::handleUnknownPrintBox);
_leftPad = MARGIN_LEFT;
_filterDropdown = new QComboBox(this);
_filterDropdown->setGeometry(_leftPad, THIRD_ROW, COMBOBOX_WIDTH, ELEMENT_HEIGHT);
_filterDropdown->addItem("No secondary filter...");
_filterDropdown->addItem("default");
_filterDropdown->addItem("hifi.audio");
_filterDropdown->addItem("hifi.audioclient");
_filterDropdown->addItem("hifi.animation");
_filterDropdown->addItem("hifi.avatars");
_filterDropdown->addItem("hifi.commerce");
_filterDropdown->addItem("hifi.controllers");
_filterDropdown->addItem("hifi.entities");
_filterDropdown->addItem("hifi.gl");
_filterDropdown->addItem("hifi.gpu.gl");
_filterDropdown->addItem("hifi.interface");
_filterDropdown->addItem("hifi.interface.deadlock");
_filterDropdown->addItem("hifi.modelformat");
_filterDropdown->addItem("hifi.networking");
_filterDropdown->addItem("hifi.networking.resource");
_filterDropdown->addItem("hifi.plugins");
_filterDropdown->addItem("hifi.render");
_filterDropdown->addItem("hifi.scriptengine");
_filterDropdown->addItem("hifi.scriptengine.module");
_filterDropdown->addItem("hifi.scriptengine.script");
_filterDropdown->addItem("hifi.shared");
_filterDropdown->addItem("hifi.ui");
_filterDropdown->addItem("qml");
connect(_filterDropdown, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &LogDialog::handleFilterDropdownChanged);
_extraDebuggingBox = new QCheckBox("Extra debugging", this);
if (_logger->extraDebugging()) {
_extraDebuggingBox->setCheckState(Qt::Checked);
}
_extraDebuggingBox->show();
connect(_extraDebuggingBox, &QCheckBox::stateChanged, this, &LogDialog::handleExtraDebuggingCheckbox);
_clearFilterButton = new QPushButton("Clear Filters", this);
// set object name for css styling
_clearFilterButton->setObjectName("showAllButton");
_clearFilterButton->show();
connect(_clearFilterButton, &QPushButton::clicked, this, &LogDialog::handleClearFilterButton);
handleClearFilterButton();
}
void LogDialog::resizeEvent(QResizeEvent* event) {
BaseLogDialog::resizeEvent(event);
_revealLogButton->setGeometry(width() - ELEMENT_MARGIN - REVEAL_BUTTON_WIDTH,
ELEMENT_MARGIN,
REVEAL_BUTTON_WIDTH,
ELEMENT_HEIGHT);
ELEMENT_MARGIN,
REVEAL_BUTTON_WIDTH,
ELEMENT_HEIGHT);
_clearFilterButton->setGeometry(width() - ELEMENT_MARGIN - CLEAR_FILTER_BUTTON_WIDTH,
THIRD_ROW,
CLEAR_FILTER_BUTTON_WIDTH,
ELEMENT_HEIGHT);
_extraDebuggingBox->setGeometry(width() - ELEMENT_MARGIN - COMBOBOX_WIDTH - ELEMENT_MARGIN - CLEAR_FILTER_BUTTON_WIDTH,
THIRD_ROW,
COMBOBOX_WIDTH,
ELEMENT_HEIGHT);
}
void LogDialog::handleRevealButton() {
_logger->locateLog();
}
void LogDialog::handleClearFilterButton() {
_logger->setExtraDebugging(false);
_extraDebuggingBox->setCheckState(Qt::Unchecked);
_logger->setDebugPrint(false);
_debugPrintBox->setCheckState(Qt::Unchecked);
_logger->setInfoPrint(false);
_infoPrintBox->setCheckState(Qt::Unchecked);
_logger->setCriticalPrint(true);
_criticalPrintBox->setCheckState(Qt::Checked);
_logger->setWarningPrint(true);
_warningPrintBox->setCheckState(Qt::Checked);
_logger->setSuppressPrint(true);
_suppressPrintBox->setCheckState(Qt::Checked);
_logger->setFatalPrint(true);
_fatalPrintBox->setCheckState(Qt::Checked);
_logger->setUnknownPrint(true);
_unknownPrintBox->setCheckState(Qt::Checked);
clearSearch();
_filterDropdown->setCurrentIndex(0);
printLogFile();
}
void LogDialog::handleExtraDebuggingCheckbox(int state) {
_logger->setExtraDebugging(state != 0);
}
void LogDialog::handleDebugPrintBox(int state) {
_logger->setDebugPrint(state != 0);
printLogFile();
}
void LogDialog::handleInfoPrintBox(int state) {
_logger->setInfoPrint(state != 0);
printLogFile();
}
void LogDialog::handleCriticalPrintBox(int state) {
_logger->setCriticalPrint(state != 0);
printLogFile();
}
void LogDialog::handleWarningPrintBox(int state) {
_logger->setWarningPrint(state != 0);
printLogFile();
}
void LogDialog::handleSuppressPrintBox(int state) {
_logger->setSuppressPrint(state != 0);
printLogFile();
}
void LogDialog::handleFatalPrintBox(int state) {
_logger->setFatalPrint(state != 0);
printLogFile();
}
void LogDialog::handleUnknownPrintBox(int state) {
_logger->setUnknownPrint(state != 0);
printLogFile();
}
void LogDialog::handleFilterDropdownChanged(int selection) {
if (selection != 0) {
_filterSelection = "[" + _filterDropdown->currentText() + "]";
} else {
_filterSelection = "";
}
printLogFile();
}
QString LogDialog::getCurrentLog() {
return _logger->getLogData();
}
void LogDialog::appendLogLine(QString logLine) {
if (logLine.contains(_searchTerm, Qt::CaseInsensitive) &&
logLine.contains(_filterSelection, Qt::CaseSensitive)) {
int indexToBold = _logTextBox->document()->characterCount();
_highlighter->setBold(indexToBold);
if (logLine.contains(DEBUG_TEXT, Qt::CaseSensitive)) {
if (_logger->debugPrint()) {
_logTextBox->appendPlainText(logLine.trimmed());
}
} else if (logLine.contains(INFO_TEXT, Qt::CaseSensitive)) {
if (_logger->infoPrint()) {
_logTextBox->appendPlainText(logLine.trimmed());
}
} else if (logLine.contains(CRITICAL_TEXT, Qt::CaseSensitive)) {
if (_logger->criticalPrint()) {
_logTextBox->appendPlainText(logLine.trimmed());
}
} else if (logLine.contains(WARNING_TEXT, Qt::CaseSensitive)) {
if (_logger->warningPrint()) {
_logTextBox->appendPlainText(logLine.trimmed());
}
} else if (logLine.contains(SUPPRESS_TEXT, Qt::CaseSensitive)) {
if (_logger->suppressPrint()) {
_logTextBox->appendPlainText(logLine.trimmed());
}
} else if (logLine.contains(FATAL_TEXT, Qt::CaseSensitive)) {
if (_logger->fatalPrint()) {
_logTextBox->appendPlainText(logLine.trimmed());
}
} else {
if (_logger->unknownPrint()) {
_logTextBox->appendPlainText(logLine.trimmed());
}
}
}
}
void LogDialog::printLogFile() {
_logTextBox->clear();
QString log = getCurrentLog();
QStringList logList = log.split('\n');
for (const auto& message : logList) {
appendLogLine(message);
}
}

View file

@ -16,6 +16,7 @@
class QCheckBox;
class QPushButton;
class QComboBox;
class QResizeEvent;
class AbstractLoggerInterface;
@ -25,17 +26,40 @@ class LogDialog : public BaseLogDialog {
public:
LogDialog(QWidget* parent, AbstractLoggerInterface* logger);
public slots:
void appendLogLine(QString logLine) override;
private slots:
void handleRevealButton();
void handleExtraDebuggingCheckbox(int);
void handleDebugPrintBox(int);
void handleInfoPrintBox(int);
void handleCriticalPrintBox(int);
void handleWarningPrintBox(int);
void handleSuppressPrintBox(int);
void handleFatalPrintBox(int);
void handleUnknownPrintBox(int);
void handleFilterDropdownChanged(int);
void handleClearFilterButton();
protected:
void resizeEvent(QResizeEvent* event) override;
QString getCurrentLog() override;
void printLogFile();
private:
QCheckBox* _extraDebuggingBox;
QPushButton* _revealLogButton;
QPushButton* _clearFilterButton;
QCheckBox* _debugPrintBox;
QCheckBox* _infoPrintBox;
QCheckBox* _criticalPrintBox;
QCheckBox* _warningPrintBox;
QCheckBox* _suppressPrintBox;
QCheckBox* _fatalPrintBox;
QCheckBox* _unknownPrintBox;
QComboBox* _filterDropdown;
QString _filterSelection;
AbstractLoggerInterface* _logger;
};

View file

@ -24,7 +24,21 @@ public:
AbstractLoggerInterface(QObject* parent = NULL);
~AbstractLoggerInterface();
inline bool extraDebugging() { return _extraDebugging; }
inline void setExtraDebugging(bool debugging) { _extraDebugging = debugging; }
inline bool debugPrint() { return _debugPrint; }
inline bool infoPrint() { return _infoPrint; }
inline bool criticalPrint() { return _criticalPrint; }
inline bool warningPrint() { return _warningPrint; }
inline bool suppressPrint() { return _suppressPrint; }
inline bool fatalPrint() { return _fatalPrint; }
inline bool unknownPrint() { return _unknownPrint; }
inline void setExtraDebugging(bool extraDebugging) { _extraDebugging = extraDebugging; }
inline void setDebugPrint(bool debugPrint) { _debugPrint = debugPrint; }
inline void setInfoPrint(bool infoPrint) { _infoPrint = infoPrint; }
inline void setCriticalPrint(bool criticalPrint) { _criticalPrint = criticalPrint; }
inline void setWarningPrint(bool warningPrint) { _warningPrint = warningPrint; }
inline void setSuppressPrint(bool suppressPrint) { _suppressPrint = suppressPrint; }
inline void setFatalPrint(bool fatalPrint) { _fatalPrint = fatalPrint; }
inline void setUnknownPrint(bool unknownPrint) { _unknownPrint = unknownPrint; }
virtual void addMessage(const QString&) = 0;
virtual QString getLogData() = 0;
@ -36,6 +50,13 @@ signals:
private:
bool _extraDebugging{ false };
bool _debugPrint{ false };
bool _infoPrint{ false };
bool _criticalPrint{ true };
bool _warningPrint{ true };
bool _suppressPrint{ true };
bool _fatalPrint{ true };
bool _unknownPrint{ true };
};
#endif // hifi_AbstractLoggerInterface_h