File indexing completed on 2024-05-05 05:48:57

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 "logModeConfiguration.h"
0008 
0009 #include "defaults.h"
0010 #include "ksystemlog_debug.h"
0011 
0012 #include <KLocalizedString>
0013 
0014 #include "logLevel.h"
0015 
0016 #include "globals.h"
0017 
0018 #include "ksystemlogConfig.h"
0019 
0020 LogModeConfiguration::LogModeConfiguration(QObject *parent)
0021     : QObject(parent)
0022 {
0023     mConfiguration = KSystemLogConfig::self();
0024 }
0025 
0026 LogModeConfiguration::~LogModeConfiguration()
0027 {
0028     // configuration is managed by KDE
0029 }
0030 
0031 // TODO Need a rewritting
0032 /*
0033 Reader* ReaderFactory::createReader(LogMode* logMode) {
0034 
0035     //Using Boot Mode in the current view
0036     else if (logMode==Globals::bootMode) {
0037         Reader* reader=new SystemReader(NULL, "boot_reader");
0038         return(reader);
0039     }
0040 
0041     //Using Authentication Mode in the current view
0042     else if (logMode==Globals::authenticationMode) {
0043         Reader* reader=new SystemReader(NULL, "authentication_reader");
0044         return(reader);
0045     }
0046 
0047     //Using Daemon Mode in the current view
0048     else if (logMode==Globals::daemonMode) {
0049         Reader* reader=new SystemReader(NULL, "daemon_reader");
0050         return(reader);
0051     }
0052 
0053     //Using Cups Mode in the current view
0054     else if (logMode==Globals::cupsMode) {
0055         Reader* reader=new CupsReader(NULL, "cups_reader");
0056         return(reader);
0057     }
0058 
0059     //Using Cups Access Mode in the current view
0060     else if (logMode==Globals::cupsAccessMode) {
0061         Reader* reader=new CupsAccessReader(NULL, "cups_access_reader");
0062         return(reader);
0063     }
0064 
0065     //Using Postfix Mode in the current view
0066     else if (logMode==Globals::postfixMode) {
0067         Reader* reader=new SystemReader(NULL, "postfix_reader");
0068         return(reader);
0069     }
0070 
0071     //Using Samba Mode in the current view
0072     else if (logMode==Globals::sambaMode) {
0073         Reader* reader=new SambaReader(NULL, "samba_reader");
0074         return(reader);
0075     }
0076 
0077     //Using SSH Mode in the current view
0078     else if (logMode==Globals::sshMode) {
0079         Reader* reader=new SSHReader(NULL, "ssh_reader");
0080         return(reader);
0081     }
0082 
0083     //Using X Session Mode in the current view
0084     else if (logMode==Globals::xsessionMode) {
0085         Reader* reader=new XSessionReader(NULL, "xsession_reader");
0086         return reader;
0087     }
0088 
0089   qCCritical(KSYSTEMLOG) << "LogMode not found : returns NULL Reader";
0090     return NULL;
0091 }
0092 */
0093 
0094 // TODO Move this method in LogModeFactory subclasses
0095 /*
0096 QVector<LogFile> LogFilesFactory::createLogFiles(LogMode* logMode) {
0097 
0098     else if (logMode==Globals::instance().bootMode()) {
0099         QVector<LogFile> list;
0100         list.append(LogFilesFactory::instance().getBootLogFile());
0101         return list;
0102     }
0103 
0104     else if (logMode==Globals::instance().authenticationMode()) {
0105         QVector<LogFile> list;
0106         list.append(LogFilesFactory::instance().getAuthenticationLogFile());
0107         return list;
0108     }
0109 
0110     else if (logMode==Globals::instance().daemonMode()) {
0111         return LogFilesFactory::getDaemonLogFiles();
0112     }
0113 
0114     else if (logMode==Globals::instance().cupsMode()) {
0115         return LogFilesFactory::getCupsLogFiles();
0116     }
0117 
0118     else if (logMode==Globals::instance().cupsAccessMode()) {
0119         return LogFilesFactory::getCupsAccessLogFiles();
0120 
0121     }
0122 
0123     else if (logMode==Globals::instance().postfixMode()) {
0124         return LogFilesFactory::getPostfixLogFiles();
0125     }
0126 
0127     else if (logMode==Globals::instance().sambaMode()) {
0128         return LogFilesFactory::getSambaLogFiles();
0129     }
0130 
0131     else if (logMode==Globals::instance().sshMode()) {
0132         return LogFilesFactory::getSSHLogFiles();
0133     }
0134 
0135 
0136     else if (logMode==Globals::instance().xsessionMode()) {
0137         return LogFilesFactory::getXSessionLogFiles();
0138     }
0139 
0140   logError() << "LogFiles not found : returns NULL Reader";
0141 
0142     return QVector<LogFile>();
0143 
0144 }
0145 
0146 
0147 LogFile LogFilesFactory::getBootLogFile() {
0148     QString file=KSystemLogConfig::bootPath();
0149     return getGenericLogFile(file);
0150 }
0151 
0152 LogFile LogFilesFactory::getAuthenticationLogFile() {
0153     QString file=KSystemLogConfig::authenticationPath();
0154     return getGenericLogFile(file);
0155 }
0156 
0157 QVector<LogFile> LogFilesFactory::getDaemonLogFiles() {
0158     QStringList files=KSystemLogConfig::daemonPaths();
0159     QList<int> levels=KSystemLogConfig::daemonLevels();
0160     return LogFilesFactory::getGenericLogFiles(files, levels);
0161 }
0162 
0163 QVector<LogFile> LogFilesFactory::getCupsLogFiles() {
0164     QStringList stringList=KSystemLogConfig::cupsPaths();
0165     return getNoModeLogFiles(stringList);
0166 }
0167 
0168 QVector<LogFile> LogFilesFactory::getCupsAccessLogFiles() {
0169     QStringList stringList=KSystemLogConfig::cupsAccessPaths();
0170     return getNoModeLogFiles(stringList);
0171 }
0172 
0173 QVector<LogFile> LogFilesFactory::getPostfixLogFiles() {
0174     QStringList files=KSystemLogConfig::postfixPaths();
0175     QList<int> levels=KSystemLogConfig::postfixLevels();
0176     return LogFilesFactory::getGenericLogFiles(files, levels);
0177 }
0178 
0179 QVector<LogFile> LogFilesFactory::getSambaLogFiles() {
0180     QStringList stringList=KSystemLogConfig::sambaPaths();
0181     return getNoModeLogFiles(stringList);
0182 }
0183 
0184 QVector<LogFile> LogFilesFactory::getSSHLogFiles() {
0185     QStringList stringList=KSystemLogConfig::sshPaths();
0186     return getNoModeLogFiles(stringList);
0187 }
0188 
0189 QVector<LogFile> LogFilesFactory::getXSessionLogFiles() {
0190     QStringList stringList=KSystemLogConfig::xSessionPaths();
0191     return getNoModeLogFiles(stringList);
0192 }
0193 
0194 */
0195 
0196 LogFile LogModeConfiguration::findGenericLogFile(const QString &file)
0197 {
0198     LogLevel *level = Globals::instance().informationLogLevel();
0199 
0200     const QUrl url = QUrl::fromLocalFile(file);
0201     if (!url.isValid()) {
0202         qCWarning(KSYSTEMLOG) << i18n("URL '%1' is not valid, skipping this URL.", url.path());
0203         return LogFile(QUrl(), Globals::instance().noLogLevel());
0204     }
0205     return LogFile(url, level);
0206 }
0207 
0208 QVector<LogFile> LogModeConfiguration::findGenericLogFiles(const QStringList &files)
0209 {
0210     QVector<LogFile> logFiles;
0211 
0212     logFiles.reserve(files.count());
0213     for (const QString &file : files) {
0214         logFiles.append(findGenericLogFile(file));
0215     }
0216 
0217     return logFiles;
0218 }
0219 
0220 QVector<LogFile> LogModeConfiguration::findNoModeLogFiles(const QStringList &stringList)
0221 {
0222     QVector<LogFile> logFiles;
0223 
0224     // Default level used for No Mode logs
0225     LogLevel *level = Globals::instance().noLogLevel();
0226 
0227     for (const QString &string : stringList) {
0228         const QUrl url = QUrl::fromLocalFile(string);
0229         if (!url.isValid()) {
0230             qCWarning(KSYSTEMLOG) << i18n("URL '%1' is not valid, skipping this URL.", url.path());
0231             continue;
0232         }
0233 
0234         logFiles.append(LogFile(url, level));
0235     }
0236 
0237     return logFiles;
0238 }
0239 
0240 #include "moc_logModeConfiguration.cpp"