/** * @RDE_HEADER@ * callback to catch qt log messages * $Id$ * $HeadURL$ * $Author$ */ #include #include static void qtMsgHandler(QtMsgType type, const QMessageLogContext &, const QString &msg) { // pulse audio connect errors are important but can be very annoying - so only print it ONE time only and also as an error static bool pulseAudioMessageSent = false; static QString pulseAudioMessage = QStringLiteral("PulseAudioService: pa_context_connect() failed"); if (msg.startsWith(pulseAudioMessage)) { if (pulseAudioMessageSent) { return; } type = QtCriticalMsg; pulseAudioMessageSent = true; } try { NGL::INGLLogger &l = NGL::NGLLoggerBootstrap::getNGLRootLogger().getNGLLogger( "NGL.Qt" ); switch (type) { case QtDebugMsg: DEBUG_LOG(l) << msg ; break; case QtInfoMsg: INFO_LOG(l) << msg ; break; case QtWarningMsg: WARNING_LOG(l) << msg ; break; case QtCriticalMsg: ERROR_LOG(l) << msg ; break; case QtFatalMsg: FATAL_LOG(l) << msg ; break; } } catch (...) { switch (type) { case QtDebugMsg: case QtInfoMsg: fputs(qPrintable(msg), stdout); break; case QtWarningMsg: case QtCriticalMsg: case QtFatalMsg: fputs(qPrintable(msg), stderr); break; } } }