File indexing completed on 2024-05-12 05:48:38
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 "fileAnalyzer.h" 0010 0011 #include "ksystemlog_debug.h" 0012 0013 #include "cupsLogMode.h" 0014 #include "localLogFileReader.h" 0015 #include "parsingHelper.h" 0016 0017 #define DEBUG2_LOG_LEVEL_ICON "source" 0018 0019 class CupsAnalyzer : public FileAnalyzer 0020 { 0021 Q_OBJECT 0022 0023 public: 0024 explicit CupsAnalyzer(LogMode *logMode); 0025 0026 ~CupsAnalyzer() override; 0027 0028 LogViewColumns initColumns() override; 0029 0030 protected: 0031 LogFileReader *createLogFileReader(const LogFile &logFile) override; 0032 0033 Analyzer::LogFileSortMode logFileSortMode() override; 0034 0035 /* 0036 * Also sees : 0037 * https://www.cups.org/doc/man-cupsd-logs.html 0038 * level date-time message 0039 * 0040 * Levels : 0041 * A - Alert message (LogLevel alert) 0042 * C - Critical error message (LogLevel crit) 0043 * D - Debugging message (LogLevel debug) 0044 * d - Detailed debugging message (LogLevel debug2) 0045 * E - Normal error message (LogLevel error) 0046 * I - Informational message (LogLevel info) 0047 * N - Notice message (LogLevel notice) 0048 * W - Warning message (LogLevel warn) 0049 * X - Emergency error message (LogLevel emerg) 0050 * 0051 * Log line examples : 0052 * I [15/Feb/2004:01:29:32 +0100] LoadPPDs: No new or changed PPDs... 0053 * E [15/Feb/2004:01:43:15 +0100] Scheduler shutting down due to SIGTERM. 0054 * 0055 */ 0056 LogLine *parseMessage(const QString &logLine, const LogFile &originalLogFile) override; 0057 0058 private: 0059 QMap<QChar, LogLevel *> mMapTypeLevels; 0060 0061 void initializeTypeLevels(); 0062 0063 LogLevel *findLogLevel(QChar type); 0064 };