From be0446f9a90f51a9e0272c8e7a4a43de314232bf Mon Sep 17 00:00:00 2001 From: Bing Shearer Date: Thu, 14 Jul 2016 11:36:48 -0700 Subject: [PATCH 1/4] Delete old logs if the sum size of those logs exceeds reasonable size. --- interface/src/FileLogger.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/interface/src/FileLogger.cpp b/interface/src/FileLogger.cpp index 50f7d15d6b..9df7967baf 100644 --- a/interface/src/FileLogger.cpp +++ b/interface/src/FileLogger.cpp @@ -24,9 +24,14 @@ static const QString FILENAME_FORMAT = "hifi-log_%1_%2.txt"; static const QString DATETIME_FORMAT = "yyyy-MM-dd_hh.mm.ss"; static const QString LOGS_DIRECTORY = "Logs"; +static const QString IPADDR_WILDCARD = "[0-9]*.[0-9]*.[0-9]*.[0-9]*"; +static const QString DATETIME_WILDCARD = "20[0-9][0-9]-[0,1][0-9]-[0-3][0-9]_[0-2][0-9].[0-6][0-9].[0-6][0-9]"; +static const QString FILENAME_WILDCARD = "hifi-log_" + IPADDR_WILDCARD + "_" + DATETIME_WILDCARD + ".txt"; // Max log size is 512 KB. We send log files to our crash reporter, so we want to keep this relatively // small so it doesn't go over the 2MB zipped limit for all of the files we send. static const qint64 MAX_LOG_SIZE = 512 * 1024; +// Max log files found in the log directory is 100. +static const qint64 MAX_LOG_DIR_SIZE = 512 * 1024 * 100; // Max log age is 1 hour static const uint64_t MAX_LOG_AGE_USECS = USECS_PER_SECOND * 3600; @@ -71,6 +76,23 @@ void FilePersistThread::rollFileIfNecessary(QFile& file, bool notifyListenersIfR _lastRollTime = now; } + QStringList nameFilters; + nameFilters << FILENAME_WILDCARD; + + QDir logQDir(FileUtils::standardPath(LOGS_DIRECTORY)); + logQDir.setNameFilters(nameFilters); + logQDir.setSorting(QDir::Time); + QFileInfoList filesInDir = logQDir.entryInfoList(); + qint64 totalSizeOfDir = 0; + foreach (QFileInfo dirItm, filesInDir){ + if (totalSizeOfDir < MAX_LOG_DIR_SIZE){ + totalSizeOfDir += dirItm.size(); + } + else { + QFile file(dirItm.filePath()); + file.remove(); + } + } } } From 9641ae8cd816eb57f28366f4b66c3416df049a58 Mon Sep 17 00:00:00 2001 From: Bing Shearer Date: Thu, 14 Jul 2016 13:22:43 -0700 Subject: [PATCH 2/4] Coding standard fun! --- interface/src/FileLogger.cpp | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/interface/src/FileLogger.cpp b/interface/src/FileLogger.cpp index 9df7967baf..628aa30a3d 100644 --- a/interface/src/FileLogger.cpp +++ b/interface/src/FileLogger.cpp @@ -62,20 +62,20 @@ FilePersistThread::FilePersistThread(const FileLogger& logger) : _logger(logger) } void FilePersistThread::rollFileIfNecessary(QFile& file, bool notifyListenersIfRolled) { - uint64_t now = usecTimestampNow(); - if ((file.size() > MAX_LOG_SIZE) || (now - _lastRollTime) > MAX_LOG_AGE_USECS) { - QString newFileName = getLogRollerFilename(); - if (file.copy(newFileName)) { - file.open(QIODevice::WriteOnly | QIODevice::Truncate); - file.close(); - qDebug() << "Rolled log file:" << newFileName; + uint64_t now = usecTimestampNow(); + if ((file.size() > MAX_LOG_SIZE) || (now - _lastRollTime) > MAX_LOG_AGE_USECS) { + QString newFileName = getLogRollerFilename(); + if (file.copy(newFileName)) { + file.open(QIODevice::WriteOnly | QIODevice::Truncate); + file.close(); + qDebug() << "Rolled log file:" << newFileName; - if (notifyListenersIfRolled) { - emit rollingLogFile(newFileName); - } + if (notifyListenersIfRolled) { + emit rollingLogFile(newFileName); + } - _lastRollTime = now; - } + _lastRollTime = now; + } QStringList nameFilters; nameFilters << FILENAME_WILDCARD; @@ -84,18 +84,16 @@ void FilePersistThread::rollFileIfNecessary(QFile& file, bool notifyListenersIfR logQDir.setSorting(QDir::Time); QFileInfoList filesInDir = logQDir.entryInfoList(); qint64 totalSizeOfDir = 0; - foreach (QFileInfo dirItm, filesInDir){ + foreach(QFileInfo dirItm, filesInDir){ if (totalSizeOfDir < MAX_LOG_DIR_SIZE){ totalSizeOfDir += dirItm.size(); - } - else { + } else { QFile file(dirItm.filePath()); file.remove(); } } - } + } } - bool FilePersistThread::processQueueItems(const Queue& messages) { QFile file(_logger._fileName); rollFileIfNecessary(file); From 4fb9d8801c1dc2d95ac05415685505ebd9ddf556 Mon Sep 17 00:00:00 2001 From: Bing Shearer Date: Thu, 14 Jul 2016 13:55:26 -0700 Subject: [PATCH 3/4] More coding standard fun! --- interface/src/FileLogger.cpp | 56 ++++++++++++++++++------------------ 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/interface/src/FileLogger.cpp b/interface/src/FileLogger.cpp index 628aa30a3d..48bd881bfd 100644 --- a/interface/src/FileLogger.cpp +++ b/interface/src/FileLogger.cpp @@ -62,37 +62,37 @@ FilePersistThread::FilePersistThread(const FileLogger& logger) : _logger(logger) } void FilePersistThread::rollFileIfNecessary(QFile& file, bool notifyListenersIfRolled) { - uint64_t now = usecTimestampNow(); - if ((file.size() > MAX_LOG_SIZE) || (now - _lastRollTime) > MAX_LOG_AGE_USECS) { - QString newFileName = getLogRollerFilename(); - if (file.copy(newFileName)) { - file.open(QIODevice::WriteOnly | QIODevice::Truncate); - file.close(); - qDebug() << "Rolled log file:" << newFileName; + uint64_t now = usecTimestampNow(); + if ((file.size() > MAX_LOG_SIZE) || (now - _lastRollTime) > MAX_LOG_AGE_USECS) { + QString newFileName = getLogRollerFilename(); + if (file.copy(newFileName)) { + file.open(QIODevice::WriteOnly | QIODevice::Truncate); + file.close(); + qDebug() << "Rolled log file:" << newFileName; - if (notifyListenersIfRolled) { - emit rollingLogFile(newFileName); - } + if (notifyListenersIfRolled) { + emit rollingLogFile(newFileName); + } - _lastRollTime = now; - } - QStringList nameFilters; - nameFilters << FILENAME_WILDCARD; + _lastRollTime = now; + } + QStringList nameFilters; + nameFilters << FILENAME_WILDCARD; - QDir logQDir(FileUtils::standardPath(LOGS_DIRECTORY)); - logQDir.setNameFilters(nameFilters); - logQDir.setSorting(QDir::Time); - QFileInfoList filesInDir = logQDir.entryInfoList(); - qint64 totalSizeOfDir = 0; - foreach(QFileInfo dirItm, filesInDir){ - if (totalSizeOfDir < MAX_LOG_DIR_SIZE){ - totalSizeOfDir += dirItm.size(); - } else { - QFile file(dirItm.filePath()); - file.remove(); - } - } - } + QDir logQDir(FileUtils::standardPath(LOGS_DIRECTORY)); + logQDir.setNameFilters(nameFilters); + logQDir.setSorting(QDir::Time); + QFileInfoList filesInDir = logQDir.entryInfoList(); + qint64 totalSizeOfDir = 0; + foreach(QFileInfo dirItm, filesInDir){ + if (totalSizeOfDir < MAX_LOG_DIR_SIZE){ + totalSizeOfDir += dirItm.size(); + } else { + QFile file(dirItm.filePath()); + file.remove(); + } + } + } } bool FilePersistThread::processQueueItems(const Queue& messages) { QFile file(_logger._fileName); From 9ee64d114b3bca06a5f5ac9cbd6e8c828705a27c Mon Sep 17 00:00:00 2001 From: Bing Shearer Date: Fri, 15 Jul 2016 13:47:36 -0700 Subject: [PATCH 4/4] Sam's space. --- interface/src/FileLogger.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/interface/src/FileLogger.cpp b/interface/src/FileLogger.cpp index 48bd881bfd..754fa7f474 100644 --- a/interface/src/FileLogger.cpp +++ b/interface/src/FileLogger.cpp @@ -94,6 +94,7 @@ void FilePersistThread::rollFileIfNecessary(QFile& file, bool notifyListenersIfR } } } + bool FilePersistThread::processQueueItems(const Queue& messages) { QFile file(_logger._fileName); rollFileIfNecessary(file);