qtloggingqmetaobject

How to get a function's name inside of it


I'm trying to log when something is wrong, so I want to write the class info and function name like this:

void MainWindowTest::testMethod()
{
    qDebug()<<QString("ClassName is:%0,Function Name is:%1")
              .arg(this->metaObject()->className()).arg("how to get method name");
}

How do I do this?


Solution

  • You can use Q_FUNC_INFO.

    Sample code:

    qDebug() << "Function Name: " << Q_FUNC_INFO;
    

    Refer to the Qt Documentation — <QtGlobal> - Global Qt Declarations — const char*Q_FUNC_INFO.