我有一个 Air 应用程序。它由一个 HTML 组件组成。我创建了一个 flex 应用程序并在 Air Application 的 HTML 组件中启动该应用程序。我能够捕获 Air 应用程序的跟踪输出,但无法捕获 flex 应用程序的跟踪输出。因为这个 flex 应用程序是在 Air 应用程序的 HTML 组件中启动的。我使用输出日志打印的 vizy。如何捕获 flex Web 应用程序的跟踪输出。谢谢
问问题
1062 次
1 回答
0
一种可能的解决方案是使用 mx.logging.Log 进行调试跟踪,并使用自定义 LogTarget 来捕获它们。
它会是这样的。声明必要的对象:
private var logTarget:MyLogTarget= new MyLogTarget();
private var myLog:ILogger;
在初始化应用程序的位置设置日志记录:
myLog=Log.getLogger("MyApp");
Log.addTarget(logTarget);
记录东西:
myLog.info("Something something.");
myLog.warn("This is weird!");
myLog.error("This shouldn't happen!");
解决方案的核心是自定义日志目标 MyLogTarget.as:
package
{
import mx.logging.LogEvent;
import mx.logging.targets.LineFormattedTarget;
public class MyLogTarget extends LineFormattedTarget
{
public var log:Vector.<String>=new Vector.<String>;
public function MyLogTarget()
{
super();
}
override public function logEvent(event:LogEvent):void
{
trace(event.message);
log.push(event.message+"\n");
}
}
}
这个特定的实现只是将所有跟踪存储在字符串向量中,但您可以对其进行修改以将日志保存到磁盘、将其发送到服务、在屏幕上跟踪它或任何适合您的方式。
于 2013-08-28T11:39:46.513 回答