RabbitCommon v2.2.6
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
20namespace RabbitCommon {
21
22#ifdef HAVE_RABBITCOMMON_GUI
23 void OpenLogConfigureFile();
24 void OpenLogFile();
25 void OpenLogFolder();
26#endif
27
32class CLog : QObject
33{
34 Q_OBJECT
35
36public:
37 static CLog* Instance();
38
39 QString OpenLogConfigureFile();
40 QString GetLogFile();
41 QString GetLogDir();
42
43 int SetFilter(const QString &szInclude, const QString &szExclude);
44 int GetFilter(QString &szInclude, QString &szExclude);
45
46private:
47 CLog();
48 virtual ~CLog();
49
50 QString m_szConfigureFile;
51
52 QString m_szPath;
53 QString m_szFileFormat;
54 QFile m_File;
55 QMutex m_Mutex;
56 qint64 m_nLength; // Unit: byte
57 int m_nCount;
58 QTimer m_Timer;
59 #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
60 static void myMessageOutput(QtMsgType type,
61 const QMessageLogContext &context,
62 const QString &msg);
63 #else
64 static void myMessageOutput(QtMsgType, const char *);
65 #endif
66 void checkFileCount();
67 bool checkFileLength();
68 QString getFileName();
69 QString getNextFileName(const QString szFile);
70private Q_SLOTS:
71 void slotTimeout();
72};
73
74} // End namespace RabbitCommon
75
76#endif // RABBIT_COMMON_LOG_H