File indexing completed on 2024-05-19 05:49:17
0001 /* 0002 SPDX-FileCopyrightText: 2007 Nicolas Ternisien <nicolas.ternisien@gmail.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include <KLocalizedString> 0010 0011 #include "ksystemlog_debug.h" 0012 0013 #include "fileAnalyzer.h" 0014 0015 #include "kernelLogMode.h" 0016 #include "localLogFileReader.h" 0017 #include "processOutputLogFileReader.h" 0018 0019 class LogMode; 0020 0021 class KernelAnalyzer : public FileAnalyzer 0022 { 0023 Q_OBJECT 0024 0025 public: 0026 explicit KernelAnalyzer(LogMode *logMode); 0027 0028 ~KernelAnalyzer() override 0029 { 0030 } 0031 0032 LogViewColumns initColumns() override; 0033 0034 protected: 0035 LogFileReader *createLogFileReader(const LogFile &logFile) override; 0036 0037 Analyzer::LogFileSortMode logFileSortMode() override 0038 { 0039 return Analyzer::AscendingSortedLogFile; 0040 } 0041 0042 void startupTime(); 0043 0044 LogLine *parseMessage(const QString &logLine, const LogFile &originalLogFile) override; 0045 0046 inline void parseComponentMessage(const QString &logLine, QStringList &messages) 0047 { 0048 QString message(logLine); 0049 QString component; 0050 0051 int doublePointPosition = message.indexOf(QLatin1Char(':')); 0052 0053 // Estimate the max size of a component 0054 if (doublePointPosition != -1 && doublePointPosition < 20) { 0055 component = message.left(doublePointPosition); 0056 // Remove component length + ": " 0057 message.remove(0, doublePointPosition + 2); 0058 } 0059 0060 messages.append(component); 0061 messages.append(message.simplified()); 0062 } 0063 0064 protected: 0065 QDateTime mStartupDateTime; 0066 };