Qt/QMLトピックが新しく、C++ビジネスロジックにロギングハンドラをインストールしようとしています。次のコードsnipetは、ハンドラをインストールし、特別なカテゴリ設定:console.logのQMLカテゴリを設定します。
int main(int argc, char *argv[])
{
qInstallMessageHandler(myMessageOutput);
QLoggingCategory mainEx("main.ex");
qCDebug(mainEx) << "debug message";
...
}
を結果は、次のインストールメッセージハンドラへのQtバックエンドからの呼び出しです:Qtの5では
void myMessageOutput(QtMsgType type, const QMessageLogContext &context,
const QString &msg)
{
...
}
ことも可能ですQMLに直接ではデバッグメッセージを書き込みます:
console.debug("debug message")
しかしQMessageLogConextの「cateoryは」「QML」は常にあります。別のカテゴリをQMLで直接設定することは可能ですか?
なぜあなたはより多くのカテゴリが必要なのかを知ってうれしいです。あなたは何を達成しようとしていますか? 'QMessageLogConext'の他のメンバー(' file、function、line')を使って、ロギングステートメント起点のより多くのコンテキストを得ることができます。 – KD07
1つのアプリケーションで異なるQML拡張機能を使用し、そのソースから依存するメッセージを印刷できるロギングシステムが必要です。たとえば、カテゴリに「extension1」とqDebug()メッセージが設定されている場合、このカテゴリ(メッセージを含む)がカスタマイズされたハンドラに表示されます。そこで、このカテゴリを使ってqDebugメッセージがどの拡張子で生成されたかを調べることができます。 – fischeth