File indexing completed on 2024-05-19 05:49:15
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 "cupsAnalyzer.h" 0008 #include <KLocalizedString> 0009 0010 CupsAnalyzer::CupsAnalyzer(LogMode *logMode) 0011 : FileAnalyzer(logMode) 0012 { 0013 initializeTypeLevels(); 0014 } 0015 0016 CupsAnalyzer::~CupsAnalyzer() 0017 { 0018 } 0019 0020 LogViewColumns CupsAnalyzer::initColumns() 0021 { 0022 LogViewColumns columns; 0023 columns.addColumn(LogViewColumn(i18n("Date"), true, false)); 0024 columns.addColumn(LogViewColumn(i18n("Message"), true, false)); 0025 0026 return columns; 0027 } 0028 0029 LogFileReader *CupsAnalyzer::createLogFileReader(const LogFile &logFile) 0030 { 0031 return new LocalLogFileReader(logFile); 0032 } 0033 0034 Analyzer::LogFileSortMode CupsAnalyzer::logFileSortMode() 0035 { 0036 return Analyzer::AscendingSortedLogFile; 0037 } 0038 0039 LogLine *CupsAnalyzer::parseMessage(const QString &logLine, const LogFile &originalLogFile) 0040 { 0041 QString line(logLine); 0042 0043 const QChar level = logLine[0]; 0044 0045 const QDateTime dateTime = ParsingHelper::instance()->parseHttpDateTime(logLine.mid(3, 26)); 0046 0047 const QString message = line.remove(0, 31); 0048 0049 const QStringList list{message}; 0050 0051 return new LogLine(mLogLineInternalIdGenerator++, dateTime, list, originalLogFile.url().toLocalFile(), findLogLevel(level), mLogMode); 0052 } 0053 0054 void CupsAnalyzer::initializeTypeLevels() 0055 { 0056 mMapTypeLevels[QLatin1Char('d')] = new LogLevel(20, i18n("debug 2"), QStringLiteral(DEBUG2_LOG_LEVEL_ICON), QColor(169, 189, 165), this); 0057 mMapTypeLevels[QLatin1Char('D')] = Globals::instance().debugLogLevel(); 0058 mMapTypeLevels[QLatin1Char('I')] = Globals::instance().informationLogLevel(); 0059 mMapTypeLevels[QLatin1Char('N')] = Globals::instance().noticeLogLevel(); 0060 mMapTypeLevels[QLatin1Char('W')] = Globals::instance().warningLogLevel(); 0061 mMapTypeLevels[QLatin1Char('E')] = Globals::instance().errorLogLevel(); 0062 mMapTypeLevels[QLatin1Char('C')] = Globals::instance().criticalLogLevel(); 0063 mMapTypeLevels[QLatin1Char('A')] = Globals::instance().alertLogLevel(); 0064 mMapTypeLevels[QLatin1Char('X')] = Globals::instance().emergencyLogLevel(); 0065 mMapTypeLevels[QLatin1Char(' ')] = Globals::instance().noLogLevel(); 0066 } 0067 0068 LogLevel *CupsAnalyzer::findLogLevel(QChar type) 0069 { 0070 QMap<QChar, LogLevel *>::iterator it; 0071 0072 it = mMapTypeLevels.find(type); 0073 if (it != mMapTypeLevels.end()) { 0074 return *it; 0075 } else { 0076 qCCritical(KSYSTEMLOG) << i18n("New Log Level detected: Please send this log file to the KSystemLog developer to add it."); 0077 return Globals::instance().noLogLevel(); 0078 } 0079 } 0080 0081 #include "moc_cupsAnalyzer.cpp"