Files

63 lines
953 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