From 505ed5bc64f266b899ad9667675720171adfc017 Mon Sep 17 00:00:00 2001 From: Stojce Slavkovski Date: Sun, 22 Dec 2013 23:55:21 +0100 Subject: [PATCH] Storing log to file - initial --- interface/src/FileLogger.cpp | 20 ++++++++++++++++---- interface/src/FileLogger.h | 2 ++ interface/src/ui/LogDialog.cpp | 4 +--- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/interface/src/FileLogger.cpp b/interface/src/FileLogger.cpp index 4fb9dc64d8..b9dadb4a8c 100644 --- a/interface/src/FileLogger.cpp +++ b/interface/src/FileLogger.cpp @@ -7,32 +7,44 @@ // #include "FileLogger.h" +#include "HifiSockAddr.h" +#include +#include FileLogger::FileLogger() : _lines(NULL) { + QHostAddress clientAddress = QHostAddress(getHostOrderLocalAddress()); + QDateTime now = QDateTime::currentDateTime(); + _fileName = QString("hifi-log_%1_%2.txt").arg(clientAddress.toString(), now.toString("yyyy-MM-dd_hh.mm.ss")); setExtraDebugging(false); } QStringList FileLogger::getLogData(QString searchText) { - if (searchText.isEmpty()) { return _lines; } // wait for adding new log data while iterating over _lines -// pthread_mutex_lock(& _mutex); + _mutex.lock(); QStringList filteredList; for (int i = 0; i < _lines.size(); ++i) { if (_lines[i].contains(searchText, Qt::CaseInsensitive)) { filteredList.append(_lines[i]); } } -// pthread_mutex_unlock(& _mutex); + _mutex.unlock(); return filteredList; } void FileLogger::addMessage(QString message) { + _mutex.lock(); emit logReceived(message); _lines.append(message); - // TODO: append message to file + QFile file(_fileName); + + if (file.open(QIODevice::WriteOnly | QIODevice::Append | QIODevice::Text)) { + QTextStream out(&file); + out << message; + } + _mutex.unlock(); } \ No newline at end of file diff --git a/interface/src/FileLogger.h b/interface/src/FileLogger.h index ba44c40005..848bcd44d3 100644 --- a/interface/src/FileLogger.h +++ b/interface/src/FileLogger.h @@ -22,6 +22,8 @@ public: private: QStringList _lines; + QString _fileName; + QMutex _mutex; }; diff --git a/interface/src/ui/LogDialog.cpp b/interface/src/ui/LogDialog.cpp index 4f211c5edc..ed1584aad6 100644 --- a/interface/src/ui/LogDialog.cpp +++ b/interface/src/ui/LogDialog.cpp @@ -110,9 +110,7 @@ void LogDialog::resizeEvent(QResizeEvent*) { void LogDialog::appendLogLine(QString logLine) { if (isVisible()) { pthread_mutex_lock(& _mutex); - - QString line = logLine.replace(QRegExp("node"), "node"); - _logTextBox->appendHtml(line); + _logTextBox->appendHtml(logLine.simplified()); pthread_mutex_unlock(& _mutex); _logTextBox->ensureCursorVisible(); }