1、概述
源码放在文章末尾
运行时间记录,包含如下功能:
-
- 可以启动和停止服务,在需要的时候启动。
-
- 可以指定日志文件存放目录。
-
- 可以指定时间日志输出间隔。
-
- 可以单独追加一条记录到日志文件。
-
- 日志为文本格式,清晰明了。
软件demo如下所示:
项目部分代码如下:
#ifndef SAVERUNTIME_H
#define SAVERUNTIME_H/*** 运行时间记录* 1. 可以启动和停止服务,在需要的时候启动。* 2. 可以指定日志文件存放目录。* 3. 可以指定时间日志输出间隔。* 4. 可以单独追加一条记录到日志文件。* 5. 日志为文本格式,清晰明了。*/#include <QObject>
#include <QDateTime>class QTimer;#ifdef quc
class Q_DECL_EXPORT SaveRunTime : public QObject
#else
class SaveRunTime : public QObject
#endif{Q_OBJECT
public:static SaveRunTime *Instance();explicit SaveRunTime(QObject *parent = 0);~SaveRunTime();private:static QScopedPointer<SaveRunTime> self;//日志文件路径QString path;//日志文件名称QString name;//最后的编号int lastID;//保存间隔int saveInterval;//开始时间QDateTime startTime;//日志文件QString logFile;//保存文件定时器QTimer *timerSave;private://比较两个时间差值void getDiffValue(const QDateTime &startTime, const QDateTime &endTime, int &day, int &hour, int &minute);public Q_SLOTS://启动服务void start();//停止服务void stop();//新建目录void newPath();//初始化日志文件void initLog();//追加一条记录到日志文件void appendLog();//保存运行时间到日志文件void saveLog();//设置文件保存目录void setPath(const QString &path);//设置文件名称void setName(const QString &name);//设置保存间隔void setSaveInterval(int saveInterval);
};#endif // SAVERUNTIME_H