11 #include <QContiguousCache>
14 #include <QFileInfoList>
15 #include <QLoggingCategory>
16 #include <QMessageLogContext>
19 #include <QStringList>
20 #include <QTemporaryFile>
22 #define spawnMessageLogger(category)\
23 QMessageLogger(QT_MESSAGELOG_FILE, QT_MESSAGELOG_LINE, QT_MESSAGELOG_FUNC, category().categoryName())
25 class test_LogHandler;
48 void fireRawLog(
const QString& pMsg,
const QString& pCategoryName);
56 friend class ::test_LogHandler;
57 friend class ::test_LogModel;
66 static QString getLogFileTemplate();
68 QPointer<LogEventHandler> mEventHandler;
69 const bool mEnvPattern;
70 const int mFunctionFilenameSize;
71 qint64 mBacklogPosition;
73 QContiguousCache<LogWindowEntry> mCriticalLogWindow;
74 QStringList mCriticalLogIgnore;
75 const QString mMessagePattern, mDefaultMessagePattern;
76 QPointer<QTemporaryFile> mLogFile;
77 QtMessageHandler mHandler;
81 const QByteArray mFilePrefix;
84 inline void copyMessageLogContext(
const QMessageLogContext& pSource,
85 QMessageLogContext& pDestination,
86 const QByteArray& pFilename = QByteArray(),
87 const QByteArray& pFunction = QByteArray(),
88 const QByteArray& pCategory = QByteArray())
const;
89 inline void logToFile(
const QString& pOutput);
90 inline QByteArray formatFunction(
const char*
const pFunction,
const QByteArray& pFilename,
int pLine)
const;
91 inline QByteArray formatFilename(
const char*
const pFilename)
const;
92 [[nodiscard]]
inline QByteArray formatCategory(
const QByteArray& pCategory)
const;
94 [[nodiscard]] QString getPaddedLogMsg(
const QMessageLogContext& pContext,
const QString& pMsg)
const;
95 void handleMessage(QtMsgType pType,
const QMessageLogContext& pContext,
const QString& pMsg);
96 void handleLogWindow(QtMsgType pType,
const char* pCategory,
const QString& pMsg);
97 void removeOldLogFiles();
98 QByteArray readLogFile(qint64 pStart, qint64 pLength = -1);
99 void setLogFileInternal(
bool pEnable);
101 static void messageHandler(QtMsgType pType,
const QMessageLogContext& pContext,
const QString& pMsg);
121 bool copy(
const QString& pDest);
122 [[nodiscard]]
bool copyOther(
const QString& pSource,
const QString& pDest)
const;
130 static QDateTime
getFileDate(
const QFileInfo& pInfo);
142 Q_ASSERT(pHandler.mLogFile);
144 QDebugStateSaver saver(pDbg);
145 pDbg.nospace() << pHandler.mLogFile->fileName();
Definition: LogHandler.h:33
void fireLog(const QString &pMsg)
Every log will be fired by this signal. Be aware that you NEVER use a qDebug() or something like that...
void fireRawLog(const QString &pMsg, const QString &pCategoryName)
Definition: LogHandler.h:52
void resetBacklog()
Definition: LogHandler.cpp:233
void init()
Definition: LogHandler.cpp:75
int getCriticalLogCapacity() const
Definition: LogHandler.cpp:203
void setUseHandler(bool pEnable)
Definition: LogHandler.cpp:533
bool hasCriticalLog() const
Definition: LogHandler.cpp:197
bool useHandler() const
Definition: LogHandler.cpp:539
bool useLogFile() const
Definition: LogHandler.cpp:527
friend QDebug operator<<(QDebug, const LogHandler &)
Definition: LogHandler.h:140
const LogEventHandler * getEventHandler() const
Definition: LogHandler.cpp:120
void setCriticalLogCapacity(int pSize)
Definition: LogHandler.cpp:209
QByteArray getCriticalLogWindow()
Definition: LogHandler.cpp:182
void setLogFile(bool pEnable)
Definition: LogHandler.cpp:488
void setAutoRemove(bool pRemove)
Definition: LogHandler.cpp:132
bool removeOtherLogFiles()
Definition: LogHandler.cpp:475
static LogHandler & getInstance()
QByteArray getBacklog(bool pAll=false)
Definition: LogHandler.cpp:175
QDateTime getCurrentLogFileDate() const
Definition: LogHandler.cpp:227
bool copy(const QString &pDest)
Definition: LogHandler.cpp:408
static QDateTime getFileDate(const QFileInfo &pInfo)
Definition: LogHandler.cpp:216
QFileInfoList getOtherLogFiles() const
Definition: LogHandler.cpp:442
virtual ~LogHandler()
Definition: LogHandler.cpp:51
bool copyOther(const QString &pSource, const QString &pDest) const
Definition: LogHandler.cpp:421
bool isInstalled() const
Definition: LogHandler.cpp:126
void reset()
Definition: LogHandler.cpp:64
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15
QDebug operator<<(QDebug pDbg, const CardInfo &pCardInfo)
Definition: CardInfo.cpp:287