有没有办法在不在调试模式下运行时捕获Flex应用程序的跟踪语句?

或者在没有运行调试器时是否还有其他方法可以输出日志信息?

目前我正在尝试修复仅在非常具体的部署方案中出现的错误,但我可以看到这在某些情况下对于客户在报告错误或其他问题时将日志发送给技术支持非常有用。 / p>

有帮助吗?

解决方案

我想你是在谈论针对Flash Player的Adobe Flex?

如果是这样,您可以编写自己的日志包装类,将发送给它的日志消息传播到多个目标(如跟踪堆栈和内部存储器),以便您可以从应用程序中访问日志,例如将其发送到服务器当用户同意发送错误报告时)。另请参阅 Flex日志记录框架像这样已经存在。

我实际做过这样的事情 - 我有一个名为 Log 的类,带有静态方法,如 log() debug(), error()等,此类通过 trace()将发送给它的所有消息转发到跟踪堆栈中,转换为“日志控制台“通过LocalConnection和/或Socket在同一主机上运行的应用程序(套接字连接显然比LocalConnection快得多)并且还将它们本地保存到数组中,以便用户可以直接从应用程序内发送错误报告和日志输出。

这种改变当然意味着您必须将代码中的所有 trace()命令转换为对日志记录系统的调用,但使用正则表达式搜索可以轻松实现&安培;取代

其他提示

Google Code上有一个名为 Thunder Bolt 的项目允许您在运行应用程序时编写将出现在 FireBug 中的日志消息在Firefox中(当然假设您已安装该扩展程序。)

使用此工具进行记录非常简单:

import org.osflash.thunderbolt.Logger;

var myNumber: int = 5;
var myString: String = "Lorem ipsum";
Logger.error ("Logging two objects: A number typed as int and a string", myNumber, myString);

我过去曾经使用过alcon。

http://blog.hexagonstar.com/alcon/

您可以尝试使用Farata Systems的XPanel。这是一个本机Windows UI,即使对于在浏览器中运行的Flex应用程序,也可以使用Flex 3 Logging API显示日志消息。不幸的是,他们重新设计了他们的网站,我再也找不到了......也许谷歌会帮助你。

我们使用JavaScript做了一些不同的事情。客户可以打开一个“特殊”页面,使用DHTML显示日志记录和跟踪语句。 Flex应用程序调用一个JavaScript函数,告诉应用程序该页面是否打开。如果不是,则禁用日志记录。如果它已打开,则启用日志记录并将所有日志语句附加到此页面。

请注意,由于沙箱限制,无法始终将日志记录输出写入文件系统。但是,如上所述,客户可以轻松复制和粘贴日志记录窗口的输出。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top