【发布时间】:2016-12-31 14:50:17
【问题描述】:
随着我正在做的项目越来越大,我已经厌倦了编写全面的日志消息,需要找出问题所在和位置。
因此,如果我可以将这些信息自动合并到消息中,那将非常有用。对于 C++,我们有方便的 __FILE__、__LINE__ 和 __FUNCTION__ 宏,但我似乎没有为 QML 找到任何宏。
请注意,console.trace() 在控制台中以以下格式输出跟踪:
onCompleted (qrc:/main.qml:72)
所以它包括函数、文件和行,这就是我所需要的,因此我假设已经存在获得这些的方法。自然,console.trace() 并没有完全削减它,因为它直接输出到控制台,而我需要将它们作为字符串合并到我的日志消息中。
那么有什么方法可以得到这些吗?
我当然不想在实际的 QML 源中获取它们,但与 console.trace() 的方式相同 - 在我的 Log.error() 被调用的地方,所以我可以只使用 Log.error("some error") 而不是 Log.error("some error in " + file + ", at " + line + " while executing " + func)这实际上会比手动编写整个事情更加乏味。
或者,如果有人能指出 qml console 的实现,我也将不胜感激,因为我梳理了“控制台”的整个 qtdeclarative 代码库,但一无所获。
请注意,我已经找到 this,但它对我没有用,因为我需要它用于特定的消息子集,并且不想覆盖所有输出的默认消息处理程序。
【问题讨论】: