File indexing completed on 2024-05-19 05:49:14

0001 /*
0002     SPDX-FileCopyrightText: 2007 Nicolas Ternisien <nicolas.ternisien@gmail.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "genericConfiguration.h"
0008 
0009 #include <KLocalizedString>
0010 
0011 #include "defaults.h"
0012 #include "ksystemlog_debug.h"
0013 
0014 #include "globals.h"
0015 
0016 #include "ksystemlogConfig.h"
0017 GenericLogModeConfiguration::GenericLogModeConfiguration(const QString &configurationGroup,
0018                                                          const QStringList &defaultLogFilesPaths,
0019                                                          const QList<int> &defaultLogFilesLevels)
0020 {
0021     qCDebug(KSYSTEMLOG) << "Using Configuration Group : " << configurationGroup;
0022     mConfiguration->setCurrentGroup(configurationGroup);
0023 
0024     mConfiguration->addItemStringList(QStringLiteral("LogFilesPaths"), mLogFilesPaths, defaultLogFilesPaths, QStringLiteral("LogFilesPaths"));
0025 
0026     mConfiguration->addItemIntList(QStringLiteral("LogFilesLevels"), mLogFilesLevels, defaultLogFilesLevels, QStringLiteral("LogFilesLevels"));
0027 }
0028 
0029 GenericLogModeConfiguration::~GenericLogModeConfiguration()
0030 {
0031 }
0032 
0033 QStringList GenericLogModeConfiguration::logFilesPaths() const
0034 {
0035     return mLogFilesPaths;
0036 }
0037 
0038 QList<int> GenericLogModeConfiguration::logFilesLevels() const
0039 {
0040     return mLogFilesLevels;
0041 }
0042 
0043 void GenericLogModeConfiguration::setLogFilesPaths(const QStringList &logFilesPaths)
0044 {
0045     mLogFilesPaths = logFilesPaths;
0046 }
0047 
0048 void GenericLogModeConfiguration::setLogFilesLevels(const QList<int> &logFilesLevels)
0049 {
0050     mLogFilesLevels = logFilesLevels;
0051 }
0052 
0053 QVector<LogFile> GenericLogModeConfiguration::findGenericLogFiles() const
0054 {
0055     QVector<LogFile> logFiles;
0056 
0057     if (mLogFilesPaths.size() != mLogFilesLevels.size()) {
0058         qCDebug(KSYSTEMLOG) << i18n("The two arrays size are different, skipping the reading of log files.");
0059         return logFiles;
0060     }
0061 
0062     LogLevel *level = nullptr;
0063 
0064     QListIterator<QString> itString(mLogFilesPaths);
0065     QListIterator<int> itInt(mLogFilesLevels);
0066 
0067     while (itString.hasNext()) {
0068         const int intValue = itInt.next();
0069         const QString stringValue = itString.next();
0070 
0071         level = Globals::instance().logLevels().value(Globals::LogLevelIds(intValue), Globals::instance().informationLogLevel());
0072 
0073         const QUrl url = QUrl::fromLocalFile(stringValue);
0074         if (!url.isValid()) {
0075             qCWarning(KSYSTEMLOG) << i18n("URL '%1' is not valid, skipping this URL.", url.path());
0076             continue;
0077         }
0078 
0079         logFiles.append(LogFile(url, level));
0080     }
0081 
0082     return logFiles;
0083 }
0084 
0085 #include "moc_genericConfiguration.cpp"