gpt4 book ai didi

qt - __FILE __,__ LINE__和__FUNCTION__用于QML文件吗?

转载 作者:行者123 更新时间:2023-12-04 13:00:29 26 4
gpt4 key购买 nike

随着我正在从事的项目变得越来越大,我已经厌倦了编写全面的日志消息,需要找出问题所在和出处。

因此,如果我可以将该信息自动合并到消息中,将非常有用。对于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,但是它对我来说并没有用,因为我需要用于特定的消息子集,并且不想覆盖所有输出的默认消息处理程序。

最佳答案

console.logconsole.debugconsole.infoconsole.warnconsole.error可用于将调试信息打印到控制台。输出是使用C++中的qDebugqWarningqCritical方法生成的(另请参见Debugging Techniques以及此类功能如何是implemented,尤其是this internal function)。设置环境变量QML_CONSOLE_EXTENDED还会打印调用的源代码位置。例如,

export QT_MESSAGE_PATTERN="[%{type}] %{appname} (%{file}:%{line}) - %{message}"

现在输出看起来像这样,

some_example

link包含有关自定义 QT_MESSAGE_PATTERN环境变量的详细信息。

关于qt - __FILE __,__ LINE__和__FUNCTION__用于QML文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41409273/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com