16,216
社区成员
发帖
与我相关
我的任务
分享
void myMessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg)
{
QByteArray localMsg = msg.toLocal8Bit();
switch (type) {
case QtDebugMsg:
fprintf(stdout, "Debug: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
break;
....
}
}
int main(int argc, char **argv)
{
qInstallMessageHandler(myMessageOutput);
...
return app.exec();
}
2. 把从标准错误输出重定向到标准输出去.
我只会linux系统上的:
#include <unistd.h>
int main(int argc, char *argv[])
{
dup2(2, 1); //标准错误输出的文件描述符是2, 标准输出是1
//然后用qDebug()时就会像cout一样的输出了
...
}
[/quote]
啊我现在在弄另外一个东西,弄好了再来试试这个
void myMessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg)
{
QByteArray localMsg = msg.toLocal8Bit();
switch (type) {
case QtDebugMsg:
fprintf(stdout, "Debug: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
break;
....
}
}
int main(int argc, char **argv)
{
qInstallMessageHandler(myMessageOutput);
...
return app.exec();
}
2. 把从标准错误输出重定向到标准输出去.
我只会linux系统上的:
#include <unistd.h>
int main(int argc, char *argv[])
{
dup2(2, 1); //标准错误输出的文件描述符是2, 标准输出是1
//然后用qDebug()时就会像cout一样的输出了
...
}
#include <qcoreapplication.h>
#include <stdio.h>
#include <stdlib.h>
void myMessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg)
{
QByteArray localMsg = msg.toLocal8Bit();
switch (type) {
case QtDebugMsg:
fprintf(stderr, "Debug: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
break;
case QtInfoMsg:
fprintf(stderr, "Info: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
break;
case QtWarningMsg:
fprintf(stderr, "Warning: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
break;
case QtCriticalMsg:
fprintf(stderr, "Critical: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
break;
case QtFatalMsg:
fprintf(stderr, "Fatal: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
abort();
}
}
int main(int argc, char **argv)
{
qInstallMessageHandler(myMessageOutput);
QCoreApplication app(argc, argv);
qInfo()<<"hello world";
return app.exec();
}
qInstallMessageHandler,学到了。