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 "cronAnalyzer.h" 0008 0009 LogViewColumns CronAnalyzer::initColumns() 0010 { 0011 LogViewColumns columns; 0012 columns.addColumn(LogViewColumn(i18n("Date"), true, false)); 0013 columns.addColumn(LogViewColumn(i18n("Host"), true, true)); 0014 columns.addColumn(LogViewColumn(i18n("Process"), true, true)); 0015 columns.addColumn(LogViewColumn(i18n("User"), true, true)); 0016 columns.addColumn(LogViewColumn(i18n("Command"), true, false)); 0017 return columns; 0018 } 0019 0020 Analyzer::LogFileSortMode CronAnalyzer::logFileSortMode() 0021 { 0022 return Analyzer::FilteredLogFile; 0023 } 0024 0025 LogLine *CronAnalyzer::parseMessage(const QString &logLine, const LogFile &originalFile) 0026 { 0027 // Use the default parsing 0028 LogLine *syslogLine = SyslogAnalyzer::parseMessage(logLine, originalFile); 0029 0030 QStringList list = syslogLine->logItems(); 0031 0032 if (!isCronLine(syslogLine)) { 0033 delete syslogLine; 0034 return nullptr; 0035 } 0036 0037 // Gets the message column (last item) and deletes it 0038 QString message = list.takeLast(); 0039 0040 int const leftBracket = message.indexOf(QLatin1Char('(')); 0041 int const rightBracket = message.indexOf(QLatin1Char(')')); 0042 0043 const QString user = message.mid(leftBracket + 1, rightBracket - leftBracket - 1); 0044 0045 list.append(user); 0046 0047 if (message.indexOf(QLatin1String("CMD")) != -1) { 0048 // Ignore this : ") CMD (" (length = 7) 0049 message = message.right(message.length() - rightBracket - 7); 0050 message = message.simplified(); 0051 syslogLine->setLogLevel(Globals::instance().informationLogLevel()); 0052 } else { 0053 // Ignore this : ") " (for INFO and STARTUP cases) 0054 message = message.right(message.length() - rightBracket - 2); 0055 syslogLine->setLogLevel(Globals::instance().noticeLogLevel()); 0056 } 0057 0058 list.append(message); 0059 0060 syslogLine->setLogItems(list); 0061 0062 return syslogLine; 0063 } 0064 0065 CronAnalyzer::CronAnalyzer(LogMode *logMode) 0066 : SyslogAnalyzer(logMode) 0067 { 0068 } 0069 0070 #include "moc_cronAnalyzer.cpp"