void RollingFileAppender::removeOldFiles() { if (m_logFilesLimit <= 1) return; QFileInfo fileInfo(fileName()); QDir logDirectory(fileInfo.absoluteDir()); logDirectory.setFilter(QDir::Files); logDirectory.setNameFilters(QStringList() << fileInfo.fileName() + "*"); QFileInfoList logFiles = logDirectory.entryInfoList(); QMap<QDateTime, QString> fileDates; for (int i = 0; i < logFiles.length(); ++i) { QString name = logFiles[i].fileName(); QString suffix = name.mid(name.indexOf(fileInfo.fileName()) + fileInfo.fileName().length()); QDateTime fileDateTime = QDateTime::fromString(suffix, datePatternString()); if (fileDateTime.isValid()) fileDates.insert(fileDateTime, logFiles[i].absoluteFilePath()); } QList<QString> fileDateNames = fileDates.values(); for (int i = 0; i < fileDateNames.length() - m_logFilesLimit + 1; ++i) QFile::remove(fileDateNames[i]); }
void TvnServer::resetLogFilePath() { StringStorage pathToLogDirectory; TvnLogFilename::queryLogFileDirectory(m_runAsService, m_config->isSaveLogToAllUsersPathFlagEnabled(), &pathToLogDirectory); { File logDirectory(pathToLogDirectory.getString()); logDirectory.mkdir(); } StringStorage pathToLogFile; TvnLogFilename::queryLogFilePath(m_runAsService, m_config->isSaveLogToAllUsersPathFlagEnabled(), &pathToLogFile); m_config->setLogFilePath(pathToLogFile.getString()); m_log.changeFilename(pathToLogFile.getString()); }