Index: sources/storage/logger.cpp =================================================================== diff -u -r3453d86e870b126f49f9582321dbf58928c4f396 -rd04653f0fbf1ed98178b6c7094beb4ec226a777f --- sources/storage/logger.cpp (.../logger.cpp) (revision 3453d86e870b126f49f9582321dbf58928c4f396) +++ sources/storage/logger.cpp (.../logger.cpp) (revision d04653f0fbf1ed98178b6c7094beb4ec226a777f) @@ -22,9 +22,11 @@ #include // Project +#include "threads.h" #include "storageglobals.h" +#include "maintimer.h" #include "filehandler.h" -#include "threads.h" +#include "format.h" using namespace Storage; @@ -34,7 +36,9 @@ * \param parent - QObject parent owner object. * Qt handles the children destruction by their parent objects life-cycle. */ -Logger::Logger(QObject *parent) : QObject(parent) { } +Logger::Logger(QObject *parent) : QObject(parent) { + _prefix = QFileInfo(qApp->applicationFilePath()).baseName(); +} /*! * \brief Logger::init @@ -102,8 +106,16 @@ connect(&_exportWatcher, SIGNAL(finished()), this , SLOT(onExport())); + connect(this, SIGNAL(didLog(QString,LogType)), this, SLOT( onLog(QString,LogType))); + + + connect(&_MainTimer, SIGNAL( didDateChange ()), + this , SLOT( concurrentRemoveOldLogs())); + + connect(&_removeOldLogsWatcher, SIGNAL(finished ()), + this , SLOT(onRemoveOldLogs())); } /*! @@ -223,17 +235,17 @@ void Logger::log(const QString &vContent, LogType vLogType) { QString date = QDate::currentDate().toString(_dateFormat); - QString fileName = date + _dateSeparator; + QString fileName = date + _dateSeparator + _prefix; switch (vLogType) { case LogType::eLogBasic: case LogType::eLogEvent: case LogType::eLogDatum: case LogType::eLogError: - fileName += _logFileNameBase[vLogType]; + fileName += _logFileNameExt[vLogType]; break; default: - fileName += _logFileNameBase[LogType::eLogError]; + fileName += _logFileNameExt[LogType::eLogError]; LOG_ERROR(tr("Incorrect type of logging %1").arg(vLogType)); } @@ -287,3 +299,35 @@ emit didExport(); } // coco end + +/*! + * \brief Logger::concurrentRemoveOldLogs + * \details + * + * \return always returns true for now. + * \note This method uses QtConcurrent run to execute the FileHandler copyFolder method. + */ +bool Logger::concurrentRemoveOldLogs() +{ + // coco begin validated: This needs user interaction to check the old files deleted + // has been tested manually + QString mLogsLocation = "./"; //Storage::Log_Base_Path_Name; + QStringList mLogFileFilter ; + QStringList mLogFolders ; + + mLogFolders = Format::toStringList(_logBasePathNames.values(), true, mLogsLocation); + mLogFileFilter = Format::toStringList(_logFileNameExt .values(), true, "*"); + QDate mOlderThan = QDate().currentDate().addDays(-1 * _removeOldLogsDaysOlderThan); + QFuture mFuture = QtConcurrent::run(&FileHandler::removeFiles, mLogFolders, mLogFileFilter, mOlderThan); + _removeOldLogsWatcher.setFuture(mFuture); + return true; +} +// coco end + +void Logger::onRemoveOldLogs() +{ + // coco begin validated: This needs user interaction to export to USB device + // has been tested manually + emit didRemoveOldLogs(); +} +// coco end