File indexing completed on 2024-05-05 10:08:44
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"