RabbitCommon v2.3.4
Loading...
Searching...
No Matches
Log.h
1
9#ifndef RABBIT_COMMON_LOG_H
10#define RABBIT_COMMON_LOG_H
11
12#pragma once
13#include <QObject>
14#include <QLoggingCategory>
15#include <QMutex>
16#include <QFile>
17#include <QTextStream>
18#include <QTimer>
19#include <QFileSystemWatcher>
20
21namespace RabbitCommon {
22
23#ifdef HAVE_RABBITCOMMON_GUI
24 void OpenLogConfigureFile();
25 void OpenLogFile();
26 void OpenLogFolder();
27 void CopyLogFileToClipboard();
28 void CopyLogFolderToClipboard();
29#endif
30
35class CLog : QObject
36{
37 Q_OBJECT
38
39public:
40 static CLog* Instance();
41 virtual ~CLog();
42
43 QString GetLogConfigureFile();
44 QString GetLogFile();
45 QString GetLogDir();
46
47 int SetFilter(const QString &szInclude, const QString &szExclude);
48 int GetFilter(QString &szInclude, QString &szExclude);
49
50private:
51 CLog();
52
53 QString m_szConfigureFile;
54
55 QString m_szPath;
56 QString m_szName;
57 QString m_szDateFormat;
58 qint64 m_nLength; // Unit: byte
59 int m_nCount;
60 QTimer m_Timer;
61 QFileSystemWatcher m_Watcher;
62
63 #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
64 static void myMessageOutput(QtMsgType type,
65 const QMessageLogContext &context,
66 const QString &msg);
67 #else
68 static void myMessageOutput(QtMsgType, const char *);
69 #endif
70 void checkFileCount();
71 bool checkFileLength();
72 bool checkFileName();
73 QString getFileName();
74 QString getNextFileName(const QString szFile);
75 QString getBaseName();
76 int LoadConfigure(const QString &szFile);
77
78private Q_SLOTS:
79 void slotTimeout();
80 void slotFileChanged(const QString &szPath);
81};
82
83} // End namespace RabbitCommon
84
85#endif // RABBIT_COMMON_LOG_H