File indexing completed on 2024-05-12 15:57:04
0001 /* 0002 * SPDX-FileCopyrightText: 2019 Boudewijn Rempt <boud@valdyas.org> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 #ifndef KISUSAGELOGGER_H 0007 #define KISUSAGELOGGER_H 0008 0009 #include <QString> 0010 #include <QScopedPointer> 0011 0012 #include "kritaglobal_export.h" 0013 0014 /** 0015 * @brief The KisUsageLogger class logs messages to a logfile 0016 */ 0017 class KRITAGLOBAL_EXPORT KisUsageLogger 0018 { 0019 0020 public: 0021 0022 KisUsageLogger(); 0023 ~KisUsageLogger(); 0024 0025 static void initialize(); 0026 static void close(); 0027 0028 /// basic system information 0029 /// (there is other information spreaded in the code 0030 /// check usages of writeSysInfo for details) 0031 static QString basicSystemInfo(); 0032 0033 static void writeLocaleSysInfo(); 0034 0035 /// Logs with date/time 0036 static void log(const QString &message); 0037 0038 /// Writes without date/time 0039 static void write(const QString &message); 0040 0041 /// Writes to the system information file and Krita log 0042 static void writeSysInfo(const QString &message); 0043 0044 static void writeHeader(); 0045 0046 /// Returns information about all available screens 0047 static QString screenInformation(); 0048 0049 private: 0050 0051 void rotateLog(); 0052 0053 Q_DISABLE_COPY(KisUsageLogger) 0054 0055 struct Private; 0056 const QScopedPointer<Private> d; 0057 0058 static const QString s_sectionHeader; 0059 static const int s_maxLogs {20}; 0060 0061 }; 0062 0063 #endif // KISUSAGELOGGER_H