63 lines
1015 B
C++
63 lines
1015 B
C++
|
|
#ifndef FILELOGGER_H
|
|
#define FILELOGGER_H
|
|
|
|
#include <QtGlobal>
|
|
#include <QSettings>
|
|
#include <QFile>
|
|
#include <QMutex>
|
|
#include <QBasicTimer>
|
|
#include "logglobal.h"
|
|
#include "logger.h"
|
|
#include <QTimer>
|
|
|
|
class DECLSPEC FileLogger : public Logger {
|
|
Q_OBJECT
|
|
Q_DISABLE_COPY(FileLogger)
|
|
public:
|
|
|
|
FileLogger(QSettings* settings, const int refreshInterval=10000, QObject* parent = nullptr);
|
|
|
|
virtual ~FileLogger();
|
|
|
|
virtual void write(const LogMessage* logMessage);
|
|
|
|
public slots:
|
|
void timeOutToDelete();
|
|
|
|
protected:
|
|
|
|
void timerEvent(QTimerEvent* event);
|
|
|
|
private:
|
|
|
|
|
|
QString fileName;
|
|
|
|
|
|
long maxSize;
|
|
|
|
int maxBackups;
|
|
|
|
QSettings* settings;
|
|
|
|
QFile* file;
|
|
|
|
QBasicTimer refreshTimer;
|
|
|
|
QBasicTimer flushTimer;
|
|
QTimer *TimerDel;
|
|
|
|
void open();
|
|
|
|
void close();
|
|
|
|
void rotate();
|
|
|
|
void refreshSettings();
|
|
|
|
bool removeDirectory(const QString &directoryPath);
|
|
};
|
|
|
|
#endif // FILELOGGER_H
|