Flex / Flash:在代码中捕获'trace'?

时间:2010-02-10 22:36:55

标签: flex flash trace

在Flash / Flex中,是否可以在代码中捕获“trace”的结果?

因此,例如,如果代码的一部分调用trace("foo"),我想自动捕获字符串"foo"并将其传递给其他函数。

编辑:我对尝试使用trace而不是正确的日志框架感兴趣...我想为FlexUnit编写一个插件,所以当测试失败时可以说例如:“测试blah失败。这是输出:... traced text ...”。

编辑2 :我想要捕获trace的结果。或者,换句话说,即使我的代码使用了正确的日志记录框架,我也希望优雅地处理仍在使用trace进行日志记录的代码。

5 个答案:

答案 0 :(得分:1)

据我所知,不可能在外部进行,谷歌没有结果。您是否考虑过为输出创建变量,然后将其添加到日志中,例如:

var outputtext = "text";

trace(outputtext);

// log outputtext here

如果不可行,请忽略,但我想不出任何其他方式。

但是,如果仅用于开发目的,您可以在内部执行此操作:http://broadcast.artificialcolors.com/index.php?c=1&more=1&pb=1&tb=1&title=logging_flash_trace_output_to_a_text_fil

答案 1 :(得分:0)

如果要将跟踪写入日志,可以使用Flash Player的调试版本并告诉它记录跟踪。

答案 2 :(得分:0)

我有一个Debug.write方法,通过LocalConnection发送传递的消息,我使用它而不是trace。我的要求是即使在SWF用完创作环境时也能捕获调试语句,但您可以使用此方法捕获跟踪消息。

答案 3 :(得分:0)

据我所知,您不想使用日志记录,这当然是正确的方法。

因此,你可以简单地创建一个带有方法跟踪的静态类,并从应用程序的任何地方调用此方法,这就是如何将所有跟踪到达一个地方,然后在打印之前可以使用跟踪字符串执行任何操作它控制台。

另一种方法是创建冒泡跟踪事件并在需要跟踪消息时调度它,然后为其添加监听器并捕获所有事件...... 希望它的帮助

答案 4 :(得分:0)

我建议查看瑞士框架的来源。他们在应用程序范围内使用flex内部日志Logger,并在其大多数代码中使用最佳实践。