使用QFile、QDir自动创建日志文件,以进程文件名+日期进行标识,实现日志的输出调试:
#include <QTextStream>
#include <QFile>
#include <QDir>
void QHelper::setLog(const QString &text,const QString &log)
{
QString sLogPath = QCoreApplication::applicationDirPath()+"/log";
if(!QDir().exists(sLogPath))
{//确定日志路径
if(!QDir().mkpath(sLogPath))
return ;
}
QStringList list1 = QCoreApplication::applicationFilePath().split('/');
if(0 == list1.size())
return ;
QStringList list2 = (list1.at(list1.size()-1)).split('.');
if(0 == list2.size())
return ;
QDateTime time = QDateTime::currentDateTime();
QString sLogFile = G2U("%1/%2-%3").arg(sLogPath).arg(list2.at(0)).arg(time.toString("yyyy-MM-dd"));
if(0 != log.length())
sLogFile = sLogFile+'-'+log;
sLogFile += ".log";
//日志时间
QString sLogDateTime = time.toString("yyyy-MM-dd hh:mm:ss.zzz");
//日志内容
QString sLogText = sLogDateTime+" "+text;
//写入日志
QFile file(sLogFile);
if(!file.open(QIODevice::ReadWrite | QIODevice::Append | QIODevice::Text))
return ;
QTextStream out(&file);
out << sLogText << endl;
file.close();
}