#include "common.h" #include #include #include #include #include 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"; } }