QT qDebug()ファイルに印刷
1842 ワード
#include
#include
#include
void myMessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg)
{
//
static QMutex mutex;
mutex.lock();
QByteArray localMsg = msg.toLocal8Bit();
QString strMsg("");
switch(type)
{
case QtDebugMsg:
//
strMsg = QString("Debug:");
break;
case QtWarningMsg:
//
strMsg = QString("Warning:");
break;
case QtCriticalMsg:
//
strMsg = QString("Critical:");
break;
case QtFatalMsg:
//
strMsg = QString("Fatal:");
break;
}
//
QString strDateTime = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss ddd");
QString strMessage = QString("DateTime:%1 Message:%2 File:%3 "
"Line:%4 Function:%5 ")
.arg(strDateTime).arg(localMsg.constData()).arg(context.file)
.arg(context.line).arg(context.function);
// ( 、 )
QString MyLogFilePath = “D:\” ;
MyLogFilePath += "log.txt";
QFile file(MyLogFilePath);
file.open(QIODevice::ReadWrite | QIODevice::Append);
QTextStream stream(&file);
stream << strMessage << "\r
";
file.flush();
file.close();
//
mutex.unlock();
}
int main(int argc, char *argv[])
{
//
qInstallMessageHandler(myMessageOutput);
QApplication a(argc, argv);
a.setStyle("plastique");
Widget w;
w.show();
return a.exec();
}