11 #include <QContiguousCache> 14 #include <QFileInfoList> 15 #include <QLoggingCategory> 16 #include <QMessageLogContext> 18 #include <QStringList> 19 #include <QTemporaryFile> 21 #define spawnMessageLogger(category)\ 22 QMessageLogger(QT_MESSAGELOG_FILE, QT_MESSAGELOG_LINE, QT_MESSAGELOG_FUNC, category().categoryName()) 24 class test_LogHandler;
35 friend class ::test_LogHandler;
36 friend class ::test_LogModel;
45 static QString getLogFileTemplate();
47 const bool mEnvPattern;
48 const int mFunctionFilenameSize;
49 qint64 mBacklogPosition;
51 QContiguousCache<LogWindowEntry> mCriticalLogWindow;
52 QStringList mCriticalLogIgnore;
53 const QString mMessagePattern, mDefaultMessagePattern;
54 QTemporaryFile mLogFile;
55 QtMessageHandler mHandler;
57 const QByteArray mFilePrefix;
60 inline void copyMessageLogContext(
const QMessageLogContext& pSource, QMessageLogContext& pDestination,
const QByteArray& pFilename = QByteArray(),
const QByteArray& pFunction = QByteArray(),
const QByteArray& pCategory = QByteArray());
61 inline void logToFile(
const QString& pOutput);
62 inline QByteArray formatFunction(
const char*
const pFunction,
const QByteArray& pFilename,
int pLine)
const;
63 inline QByteArray formatFilename(
const char*
const pFilename)
const;
64 inline QByteArray formatCategory(
const QByteArray& pCategory)
const;
66 QString getPaddedLogMsg(
const QMessageLogContext& pContext,
const QString& pMsg);
67 void handleMessage(QtMsgType pType,
const QMessageLogContext& pContext,
const QString& pMsg);
68 void handleLogWindow(QtMsgType pType,
const char* pCategory,
const QString& pMsg);
69 void removeOldLogfiles();
70 QByteArray readLogFile(qint64 pStart, qint64 pLength = -1);
72 static void messageHandler(QtMsgType pType,
const QMessageLogContext& pContext,
const QString& pMsg);
91 bool copy(
const QString& pDest);
92 bool copyOther(
const QString& pSource,
const QString& pDest)
const;
100 static QDateTime
getFileDate(
const QFileInfo& pInfo);
114 void fireLog(
const QString& pMsg);
115 void fireRawLog(
const QString& pMsg,
const QString& pCategoryName);
120 QDebugStateSaver saver(pDbg);
121 pDbg.nospace() << pHandler.mLogFile.fileName();
bool useHandler() const
Definition: LogHandler.cpp:488
void setAutoRemove(bool pRemove)
Definition: LogHandler.cpp:111
void resetBacklog()
Definition: LogHandler.cpp:209
QByteArray getCriticalLogWindow()
Definition: LogHandler.cpp:157
virtual ~LogHandler()
Definition: LogHandler.cpp:58
void reset()
Definition: LogHandler.cpp:77
static QDateTime getFileDate(const QFileInfo &pInfo)
Definition: LogHandler.cpp:191
void fireRawLog(const QString &pMsg, const QString &pCategoryName)
bool removeOtherLogfiles()
Definition: LogHandler.cpp:436
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:14
static LogHandler & getInstance()
Definition: LogHandler.cpp:64
QDateTime getCurrentLogfileDate() const
Definition: LogHandler.cpp:203
int getCriticalLogCapacity() const
Definition: LogHandler.cpp:178
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 init()
Definition: LogHandler.cpp:88
bool isInitialized() const
Definition: LogHandler.cpp:105
void setCriticalLogCapacity(int pSize)
Definition: LogHandler.cpp:184
void setUseHandler(bool pEnable)
Definition: LogHandler.cpp:482
bool hasCriticalLog() const
Definition: LogHandler.cpp:172
QFileInfoList getOtherLogfiles() const
Definition: LogHandler.cpp:407
bool copy(const QString &pDest)
Definition: LogHandler.cpp:373
void setLogfile(bool pEnable)
Definition: LogHandler.cpp:449
QDebug operator<<(QDebug pDbg, const CardInfo &pCardInfo)
Definition: CardInfo.cpp:259
friend QDebug operator<<(QDebug, const LogHandler &)
Definition: LogHandler.h:118
bool copyOther(const QString &pSource, const QString &pDest) const
Definition: LogHandler.cpp:386
bool useLogfile() const
Definition: LogHandler.cpp:476
Definition: LogHandler.h:30
QByteArray getBacklog(bool pAll=false)
Definition: LogHandler.cpp:150