#ifndef INSTALLMSG
#define INSTALLMSG
#include <qapplication.h>
#include <stdio.h>
#include <stdlib.h>
#include <QDir>
#include <QDateTime>
/**********************************************************************************************************
在main 里面添加
QDir *dir=new QDir;
if(!dir->exists ("log")){
dir->mkdir ("log");
}
delete dir;
qInstallMessageHandler(OutPutMsg);
*********************************************************************************************************/
void OutPutMsg(QtMsgType type, const QMessageLogContext &, const QString &msg)
{
QString qsz_fileName = "log\\"+ QDateTime::currentDateTime ().toString ("yyyy-MM-dd")+".txt";
QString qsz_outTime = QTime::currentTime ().toString ("hh点mm分ss秒");
FILE* fp;
fp = fopen(qsz_fileName.toLocal8Bit (), "a+");
QByteArray localMsg = msg.toLocal8Bit();
switch (type) {
case QtDebugMsg:
fprintf(fp, "Debug:%s----%s\n", localMsg.constData(), qsz_outTime.toLocal8Bit ().constData ());
break;
case QtInfoMsg:
fprintf(fp, "Info:%s----%s\n", localMsg.constData(), qsz_outTime.toLocal8Bit ().constData ());
break;
case QtWarningMsg:
fprintf(fp, "Warning:%s----%s\n", localMsg.constData(), qsz_outTime.toLocal8Bit ().constData ());
break;
case QtCriticalMsg:
fprintf(fp, "Critical:%s----%s\n", localMsg.constData(), qsz_outTime.toLocal8Bit ().constData ());
break;
case QtFatalMsg:
fprintf(fp, "Fatal:%s----%s\n", localMsg.constData(), qsz_outTime.toLocal8Bit ().constData ());
abort();
default:
break;
}
// switch (type) {
// case QtDebugMsg:
// fprintf(fp, "Debug: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
// break;
// case QtInfoMsg:
// fprintf(fp, "Info: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
// break;
// case QtWarningMsg:
// fprintf(fp, "Warning: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
// break;
// case QtCriticalMsg:
// fprintf(fp, "Critical: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
// break;
// case QtFatalMsg:
// fprintf(fp, "Fatal: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
// abort();
// }
fclose(fp);
}