65 lines
1.4 KiB
C++
Executable File
65 lines
1.4 KiB
C++
Executable File
/**
|
|
* @RDE_HEADER@
|
|
* callback to catch qt log messages
|
|
* $Id$
|
|
* $HeadURL$
|
|
* $Author$
|
|
*/
|
|
|
|
#include <NGLLogger/NGLLoggerBootstrap.h>
|
|
#include <QtCore/qglobal.h>
|
|
|
|
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;
|
|
}
|
|
}
|
|
}
|
|
|