1.用到的日志函数
1.创建文件,文件名为当前日期
QDateTime datetime;
QString timestr=datetime.currentDateTime().toString("yyyyMMdd");
QString fileName = "/cloudtest/daily/" + timestr + ".txt";//假设指定文件夹路径
// QFile file("../cloudtest/daily/daily.txt");
QFile file(fileName);
我第一次创建的文件名是当前日期加当前时间,时间精确到秒。但是因为精确到秒导致会创建许多文件,很不方便而且占地方,所以我当天的记录都存在同一个文件
2.文件里的格式(举个例子)//代码不全,就是告诉大家每个部分是是什么
void packet::daily()
{
int i=0;
char TIME[1024] = "";
time_t timep;
time (&timep);
strftime(TIME, sizeof(TIME), "%Y-%m-%d",localtime(&timep)); //时间
QDateTime datetime;
QString timestr=datetime.currentDateTime().toString("yyyyMMdd");
QString fileName = "/cloudtest/daily/" + timestr + ".txt";//假设指定文件夹路径
// QFile file("../cloudtest/daily/daily.txt");
QFile file(fileName);
QString sTIME = QString(TIME);
char string[m_size];
strncpy(string, m_data, m_size + 1);
if(file.open(QIODevice::WriteOnly | QIODevice::Append))
{
QTextStream stream(&file);
stream<<sTIME<<"\n";
/包头的数据
stream<<"head: ";
sprintf(DATA, "%02x", head.fd);
QString sDATAh1 = QString(DATA);
stream<<sDATAh1<<" ";
//包体
stream<<"\n";
stream<<"body: ";
int size=0;
switch(head.funcId)
{
case 0x01:
if(head.optid==0)
{
size=sizeof(Login_t);
}
else if(head.optid==1)
{
size=sizeof(res_login_t);
}
break;
。。。。。。。。//省略
default:
break;
}
for(i=0;i<size;i++)
{
sprintf(DATA, "%02x", m_data[i]);
QString sDATA = QString(DATA);
stream<<sDATA<<" ";
}
//包尾
stream<<"\n";
stream<<"tail: ";
sprintf(DATA, "%02x", tail.pack_tail);
QString sDATAt = QString(DATA);
stream<<sDATAt<<"\n";
stream<<"\n";
stream.flush();
}
file.close();
}
3.report.txt显示结果
void CTestReport::writeReport()
{
CGlobal glob;
char str[1024] = "";
sprintf(str, "测试时长;%d 模拟客户端数:%d\n发起连接数 : %d 成功登录 : %d\n发送请求包: %d 收到请求包: %d\n上传成功: %d 上传失败: %d\n", m_startHandle->m_edit_testTime->text().toInt(), glob.connectNum, glob.connectNum, glob.loginNum, glob.sendPackNum, glob.recvPackNum, glob.sucUploadNum, glob.failUploadNum);
QString s = QString(str);
QFile file("report.txt");
if(file.open(QIODevice::WriteOnly | QIODevice::Append))
{
QTextStream stream(&file);
stream<<s<<"\n";
}
}
至此,我的测试端部分告一段落。
后续可能会更新关于C++的知识。