在qt开发中,应用程序运行中常常会因为写日志的原因,造成系统性能低下,
那么这个时候就应该考虑采用单独的线程来实现日志写入功能了。
以下即为我实现的写日志代码。
1、qlog.h
#ifndef LOG_H
#define LOG_H
#include <stdio.h>
#include <stdlib.h>
#include <QDebug>
#include <QMessageBox>
#include <QFile>
#include <QFileInfo>
#include <QThread>
#include <QList>
#include <QSemaphore>
#include <QMutex>
class Clog : public QThread
{
Q_OBJECT
public:
Clog();
void write(const QString &msg);
virtual void run();
private:
QMutex m_mutex;
QList<QString> m_msg;
QSemaphore m_synSem;
};
#endif // LOG_H
2、qlog.cpp
#include "qlog.h"
#include <QMutex>
#include <QFile>
#include <QApplication>
#include <QDate>
#include <QDebug>
Clog::Clog(): m_synSem(0)
{
}
void Clog::write(const QString &msg)
{
m_mutex.lock();
QString current_date_time = QDate