将日志消息打印到 MotionBuilder

Posted

技术标签:

【中文标题】将日志消息打印到 MotionBuilder【英文标题】:Print log messages to MotionBuilder 【发布时间】:2015-09-08 06:18:30 【问题描述】:

我想使用 MotionBuilder 2013 API 从 C++ 将消息记录到 MotionBuilder 控制台。

我想要一条消息显示“Hello”的打印位置。或者,如果在运动生成器的其他地方这是不可能的。该消息已在 python 中与 print 语句一起显示。

在 Maya 中,您使用:MGlobal::displayInfo(msg);

在 3ds Max 中您可以使用:

the_listener->edit_stream->wputs(wcharConverter);
the_listener->edit_stream->flush();

有运动生成器版本吗?我已经搜索了 api,但似乎找不到调用。 http://docs.autodesk.com/MB/MB2013/ENU/MotionBuilder-SDK-Documentation/index.html

【问题讨论】:

我有点困惑。看来您正在查看 python 编辑器。我怀疑您不是在寻找 C++ 输出到 python 编辑器。我没有使用过 MotionBuilder。是否有类似的 C++ 控制台/编辑器? 我正在寻找 python 编辑器控制台的 c++ 输出是的。正如我对 Maya 和 Max 所做的那样。例如,我想要做的事情的 Maya 描述是:“此方法用于在脚本编辑器中显示信息性消息。” 基于此链接:forums.autodesk.com/t5/open-reality/…,似乎 print 只是发送到标准输出(比较 python 和 C++ 等效项)。我想这里也可能使用 std::clog 。 我没想到会这样。它们通常指向同一个位置。在这种情况下,python 解析器可能会将输出发送到标准输出并将其添加到它呈现的输出缓冲区(与标准控制台相反,标准控制台已将标准输出重定向到它)。 【参考方案1】:

你试过FBTrace("Message")吗?

查看以下文档:C++ API -> 模块 -> Trace 实用程序函数

【讨论】:

这不会在那里记录它,但如果你用 -console 启动 mobu,你可以看到它。虽然 printf 也进入了那个控制台。因此,虽然比什么都好,但它并不能满足我的需要。 您可能需要调整 Python 控制台的跟踪级别才能显示它们;文档表明它是“默认情况下的 kFBNO_TRACE”。尝试使用 pythonidelib.SetTraceLevel() 设置更高的跟踪级别。 虽然这完全是我的错,但我意识到我实际上使用的是 2013 api。 SetTrace 在它出现的那个版本中不存在。 docs.autodesk.com/MB/MB2013/ENU/MotionBuilder-SDK-Documentation/…

以上是关于将日志消息打印到 MotionBuilder的主要内容,如果未能解决你的问题,请参考以下文章

Rabbitmq-direct演示

rabbitmq消息队列

我应该将消息记录到 stderr 还是 stdout?

如何在日志中获取推送通知收到消息

Log4j将不同Package的日志输出到不同的文件

Logback日志使用详解