디버그 출력을 리디렉션하기 위해 QT는 QinstallMessageHandler () 함수를 제공합니다. 이를 통해 메시지를 인쇄하기 전에 메시지를 처리하는 사용자 정의 메시지 처리기를 설치할 수 있습니다. 예제 핸들러는 다음과 같습니다.
이 핸들러는 메시지를 stderr로 출력하지만 stderr를 파일 스트림으로 바꾸어 출력을 리디렉션 할 수 있습니다. 기능 :
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:
// ...
case QtWarningMsg:
// ...
case QtCriticalMsg:
// ...
case QtFatalMsg:
fprintf(stderr, "Fatal: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
abort();
}
}
QinstallMessageHandler (myMessageOutput); 설치되면 모든 qdebug 및 유사한 메시지가 핸들러로 리디렉션되고 지정된 파일 또는 스트림에 작성됩니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3