This is messages handler i'm using in my projects:

void writeLog(const QString &type, const QMessageLogContext &context, const QString &message)
{
    QString time = QDateTime::currentDateTime().toString("hh:mm:ss");
    QFile file(LOG_FILE);
    if (file.open(QIODevice::Append | QIODevice::Text))
    {
        QTextStream out(&file);
        out << type << time << "] ";
out << context.file << ":" << context.line << " " << context.function << ": ";
        out << message << '\n';
        file.close();
    }
//QTextStream(stdout) << context.file << ":" << context.line << " " << context.function << "\n";
    QTextStream(stdout) << type << time <<  "] " << message << '\n';
}

void messageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg)
{
    switch (type) {
    case QtDebugMsg:
        writeLog("[DEBUG ", context, msg);
        break;
    case QtWarningMsg:
        writeLog("[WARNING ", context, msg);
        break;
    case QtCriticalMsg:
        writeLog("[CRITICAL ", context, msg);
        break;
    case QtFatalMsg:
        writeLog("[FATAL ", context, msg);
        abort();
    }
}

On 05.02.2014 03:08, Tero Siironen wrote:
Hi,

I’ve been using qInstallMsgHandler earlier with Harmattan to get debug prints 
from c++ and qml to a file. Now that I’m trying to do the same with Sailfish 
and Qt5 using qInstallMessageHandler, I get only c++ prints to file, qml prints 
are shown in console or qtcreator. Debug printer is installed as first line in 
the main:

  Q_DECL_EXPORT int main(int argc, char * argv[])
{
         qInstallMessageHandler(DebugPrinter);
…

and the debug printer itself is like this:

  void DebugPrinter(QtMsgType type, const QMessageLogContext &context, const 
QString &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();
     }

     QDir homePath = QDir::homePath();
     QString dbFilePath = homePath.absolutePath();
     dbFilePath.append( "/" + DEBUGLOG );
     QFile outFile( dbFilePath );
     outFile.open(QIODevice::WriteOnly | QIODevice::Append);
     QTextStream ts(&outFile);
     ts << txt << endl;
}

So what am I doing wrong here?


—
Tero
_______________________________________________
SailfishOS.org Devel mailing list

_______________________________________________
SailfishOS.org Devel mailing list

Reply via email to