我是Qt/QML主题的新手,我正在尝试在我的c ++业务逻辑中安装日志记录处理程序.以下代码snipet安装处理程序并设置一个特殊类别:
int main(int argc, char *argv[])
{
qInstallMessageHandler(myMessageOutput);
QLoggingCategory mainEx("main.ex");
qCDebug(mainEx) << "debug message";
...
}
Run Code Online (Sandbox Code Playgroud)
结果是从Qt后端调用到以下安装的消息处理程序:
void myMessageOutput(QtMsgType type, const QMessageLogContext &context,
const QString &msg)
{
...
}
Run Code Online (Sandbox Code Playgroud)
在Qt 5中,还可以使用以下命令直接在QML中编写调试消息:
console.debug("debug message")
Run Code Online (Sandbox Code Playgroud)
但QMessageLogConext中的'cateory'总是'qml'.是否可以直接在QML中设置另一个类别?
使用Qt 5.8开始,分类记录可出QML盒子.
日志记录类别可以作为第一个参数传递给console.log()和friends.如果提供给记录器,LoggingCategory的名称将用作记录类别,否则将使用默认记录类别.
import QtQuick 2.8
Item {
LoggingCategory {
id: category
name: "com.qt.category"
}
Component.onCompleted: {
console.log(category, "message");
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
920 次 |
| 最近记录: |