Go to the documentation of this file.00001
00006 #ifndef FILELOGGER_H
00007 #define FILELOGGER_H
00008
00009 #include <QtGlobal>
00010 #include <QSettings>
00011 #include <QFile>
00012 #include <QMutex>
00013 #include <QBasicTimer>
00014 #include "logger.h"
00015
00054 class FileLogger : public Logger {
00055 Q_OBJECT
00056 Q_DISABLE_COPY(FileLogger)
00057 public:
00058
00068 FileLogger(QSettings* settings, const int refreshInterval=10000, QObject* parent = 0);
00069
00073 virtual ~FileLogger();
00074
00076 virtual void write(const LogMessage* logMessage);
00077
00078 protected:
00079
00086 void timerEvent(QTimerEvent* event);
00087
00088 private:
00089
00091 QString fileName;
00092
00094 long maxSize;
00095
00097 int maxBackups;
00098
00100 bool disabled;
00101
00103 QSettings* settings;
00104
00106 QFile* file;
00107
00109 QBasicTimer refreshTimer;
00110
00112 QBasicTimer flushTimer;
00113
00115 void open();
00116
00118 void close();
00119
00121 void rotate();
00122
00127 void refreshSettings();
00128
00129 };
00130
00131 #endif // FILELOGGER_H