qDebug() to file

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
sooofunky
Beiträge: 31
Registriert: 4. Mai 2011 11:48

qDebug() to file

Beitrag von sooofunky »

Und nochmals eine Frage...

Möchte Benutzer Interaktion (zB. Button Click) per File mitloggen und habe diesen Code:

Code: Alles auswählen

void SimpleLoggingHandler(QtMsgType type, const char *msg) {
	QString txt;
	switch (type) {
	case QtDebugMsg:
		txt = QString("Debug: %1").arg(msg);
		break;

	case QtWarningMsg:
		txt = QString("Warning: %1").arg(msg);
	break;
	case QtCriticalMsg:
		txt = QString("Critical: %1").arg(msg);
	break;
	case QtFatalMsg:
		txt = QString("Fatal: %1").arg(msg);
		abort();
	}

	QFile outFile("/home/dayo/mylog.txt");
	outFile.open(QIODevice::WriteOnly | QIODevice::Append);
	QTextStream ts(&outFile);
	ts << txt << endl;
    }
Wenn ich dann qInstallMsgHandler(SimpleLoggingHandler) aufrufe bekomme ich folgenden Fehler:

argument of type ‘void (Test4::)(QtMsgType, const char*)’ does not match ‘void (*)(QtMsgType, const char*)’

Was mache ich falsch?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Die Funktion muss schon statisch sein - ansonsten: minimales Beispiel...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
sooofunky
Beiträge: 31
Registriert: 4. Mai 2011 11:48

Beitrag von sooofunky »

Danke für die Antwort - tut mir leid, habe sie aber nicht ganz verstanden. Meinst du mit minimales Beispiel zu wenig Kontext?

habe nun SimpleLoggingHandler(QtMsgType, char const*) statisch gesetzt und bekomme folgenden Fehler:

undefined reference to `Test4::SimpleLoggingHandler(QtMsgType, char const*)'
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Wenn man in der Klasse Test4 die Funktion definiert und sie dann später nicht implementiert (sondern nur eine Funktion außerhalb von Test4 mit dem gleichen Namen) sollte man sich nicht wundern -> C++ Grundlagen
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten