44 lines
1.5 KiB
C++
44 lines
1.5 KiB
C++
#include "common.h"
|
|
#include <QCoreApplication>
|
|
#include <QFile>
|
|
#include <QTextStream>
|
|
#include <QDebug>
|
|
#include <QDateTime>
|
|
|
|
Common::Common() {}
|
|
void messageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg)
|
|
{
|
|
// 获取当前日期,并以 "yyyy-MM-dd" 格式创建文件名
|
|
QString date = QDateTime::currentDateTime().toString("yyyy-MM-dd");
|
|
QString logFileName = QCoreApplication::applicationDirPath() + "\\log\\" + date + ".log"; // 日志文件名为当前日期的日志文件
|
|
|
|
QFile logFile(logFileName); // 使用日期命名的日志文件
|
|
if (logFile.size() > 1024 * 1024 * 10) { // 文件超过 10MB
|
|
logFile.rename("app_old.log"); // 重命名日志文件
|
|
logFile.setFileName(logFileName); // 创建新文件
|
|
}
|
|
if (logFile.open(QIODevice::Append | QIODevice::Text)) {
|
|
QTextStream out(&logFile);
|
|
|
|
// 根据日志类型格式化日志
|
|
QString logMessage;
|
|
switch (type) {
|
|
case QtDebugMsg:
|
|
logMessage = QString("DEBUG: %1").arg(msg);
|
|
break;
|
|
case QtWarningMsg:
|
|
logMessage = QString("WARNING: %1").arg(msg);
|
|
break;
|
|
case QtCriticalMsg:
|
|
logMessage = QString("CRITICAL: %1").arg(msg);
|
|
break;
|
|
case QtFatalMsg:
|
|
logMessage = QString("FATAL: %1").arg(msg);
|
|
break;
|
|
}
|
|
|
|
// 添加时间戳和日志消息
|
|
out << QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss") << " " << logMessage << "\n";
|
|
}
|
|
}
|