QT5 qInstallMessageHandler(outputMessage);
QT4 qInstallMsgHandler(outputMessage);
请问qInstallMsgHandler qDebug输出文件支持多线程吗?
已经加锁了,为什么最终写文件还会出现message部分内容会写到其他其他行去了?
如何写才能使其按顺序将信息写入文件?
outputMessage实现如下:
void outputMessage(QtMsgType type, const char *msg)
{
static QMutex LogMutex;
LogMutex.lock();
switch(type)
{
case QtDebugMsg:
break;
case QtWarningMsg:
break;
case QtCriticalMsg:
break;
case QtFatalMsg:
break;
}
QString current_date_time = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss zzz");
QString message = QString("%1|%2\r\n").arg(current_date_time).arg(msg);
FileNameWithPath = "/home/log/22.log";
QFile file(FileNameWithPath);
file.open(QIODevice::WriteOnly | QIODevice::Append ); //| QIODevice::Unbuffered
QTextStream text_stream(&file);
text_stream << message ;
text_stream.flush();
file.close();
LogMutex.unlock();
}