Sono nuovo per l'argomento Qt/QML e sto cercando di installare un gestore di registrazione nella mia logica di business C++. Il seguente codice snipet installa un gestore e imposta una categoria speciale:Impostare una categoria QML per console.log
int main(int argc, char *argv[])
{
qInstallMessageHandler(myMessageOutput);
QLoggingCategory mainEx("main.ex");
qCDebug(mainEx) << "debug message";
...
}
Il risultato è una chiamata dal backend Qt per il seguente gestore di messaggi installato:
void myMessageOutput(QtMsgType type, const QMessageLogContext &context,
const QString &msg)
{
...
}
In Qt 5 è anche possibile di scrivere messaggi di debug direttamente in QML con:
console.debug("debug message")
Ma la 'cateory' in QMessageLogConext è sempre 'QML'. È possibile impostare un'altra categoria direttamente in QML?
E sarebbe bello sapere perché avete bisogno di più categorie. Cosa stai cercando di ottenere? È possibile utilizzare altri membri ('file, funzione, linea') di' QMessageLogConext' per ottenere più contesto dell'origine dell'istruzione di registrazione. – KD07
Desidero utilizzare estensioni QML diverse in un'applicazione e ho bisogno di un sistema di registrazione, in cui posso stampare messaggi dipendenti dalla sua origine. Ad esempio, se scrivi "extension1" nelle categorie e viene impostato un messaggio qDebug(), questa categoria (incluso il messaggio) apparirà nel gestore personalizzato. Quindi posso usare la categoria per scoprire quale estensione ha prodotto il messaggio qDebug. – fischeth