#include "LogUtil.h" LogUtil::LogUtil() { } void LogUtil::PrintLog(const QString level, const QString & msg) { QString folder = "D:\\WorkSpace\\Qt\\CasicPagedTable\\logs\\"; // 新建/使用 log 文件夹 QString logStr = QString("%1").arg(folder); // log 文件夹 QDir logDir("D:\\WorkSpace\\Qt\\CasicPagedTable\\logs\\"); if (!logDir.exists()) { QDir workdir(folder); bool flag = workdir.mkdir(logStr); if (flag) { folder = logStr; } } // 每日生成一个文件 QDateTime tmnow = QDateTime::currentDateTime(); QString dtstr = tmnow.toString("yyyy-MM-dd"); QString dtmstr = tmnow.toString("yyyy-MM-dd hh:mm:ss"); QString fpath = QString("%1/%2.log").arg(logStr).arg(dtstr); QFile myfile(fpath); QString message = QString("%1 [%2] %3").arg(dtmstr).arg(level).arg(msg); qDebug() << message; // DEBUG 级别的不输出文件 if (level.toUpper() == "DEBUG") { return ; } QFileInfo fi(fpath); bool flag = fi.exists() && fi.isFile(); // 文件存在 if (flag) { // 追加写入文件 if (!myfile.open(QIODevice::Append | QIODevice::Text)) { return; } QTextStream ostream(&myfile); ostream.setCodec("UTF-8"); // 写入内容 ostream << message << endl; ostream.flush(); } else { // 新建文件 if (!myfile.open(QIODevice::WriteOnly | QIODevice::Text)) { return; } QTextStream ostream(&myfile); ostream.setCodec("UTF-8"); ostream.setGenerateByteOrderMark(true); // UTF-8 带 BOM // 写入内容 ostream << message << endl; ostream.flush(); } myfile.close(); // 关闭文件 } void LogUtil::PrintLog(const QString sub, const QString file, const QString level, const QString & msg) { // 新建/使用 log 文件夹 QString logStr = QString("%1%2\\").arg("D:\\WorkSpace\\Qt\\CasicPagedTable\\logs\\").arg(sub); // log 文件夹 QDir logDir(logStr); if (!logDir.exists()) { // 递归创建目录 QDir().mkpath(logStr); } // 每日生成一个文件 QDateTime tmnow = QDateTime::currentDateTime(); QString dtstr = tmnow.toString("yyyy-MM-dd"); QString dtmstr = tmnow.toString("yyyy-MM-dd hh:mm:ss"); QString fpath = QString("%1/%2-%3.log").arg(logStr).arg(dtstr).arg(file); QFile myfile(fpath); QString message = QString("%1 [%2] %3").arg(dtmstr).arg(level).arg(msg); qDebug() << message; QFileInfo fi(fpath); bool flag = fi.exists() && fi.isFile(); // 文件存在 if (flag) { // 追加写入文件 if (!myfile.open(QIODevice::Append | QIODevice::Text)) { return; } QTextStream ostream(&myfile); ostream.setCodec("UTF-8"); // 写入内容 ostream << message << endl; ostream.flush(); } else { // 新建文件 if (!myfile.open(QIODevice::WriteOnly | QIODevice::Text)) { return; } QTextStream ostream(&myfile); ostream.setCodec("UTF-8"); ostream.setGenerateByteOrderMark(true); // UTF-8 带 BOM // 写入内容 ostream << message << endl; ostream.flush(); } myfile.close(); // 关闭文件 }