c++ - MessageHandler Qt -
i create qtmsgtype. wrote messagehandler handles default types. qdebug() qtdebugmsg, qwarning() qtwarningmsg etc.
in qt source:
enum qtmsgtype { qtdebugmsg, qtwarningmsg, qtcriticalmsg, qtfatalmsg, qtsystemmsg = qtcriticalmsg }; my messagehandler registered qinstallmsghandler:
void messagehandler(qtmsgtype type, const qmessagelogcontext&, const qstring& msg) { switch (type){ case qtdebugmsg: outputmessagehandler::gethandler()->debug(msg); break; case qtwarningmsg: outputmessagehandler::gethandler()->warning(msg); break; case qtcriticalmsg: outputmessagehandler::gethandler()->error(msg); break; case qtfatalmsg: outputmessagehandler::gethandler()->fatal(msg); break; } } i have qmycustommessage() mycustommsg such handler catches catches qdebug() don't know how that. there way achieve that? in advance.
i doubt can define custom message other listed in qtmsgtype enum. can distinguish messages prefixing them in special way. example, in message handler can write:
void messagehandler(qtmsgtype type, const char *msg) { switch (type) { case qtdebugmsg: qstring strmessage(msg); if (strmessage.startswith("mycustommessage") { // handle messages here. } break; default: break; } } and in code, can send messages this:
qdebug() << "mycustommessage" << "this special message send";
Comments
Post a Comment