Air アプリケーションがあります。HTML コンポーネントで構成されます。flex アプリケーションを作成し、このアプリケーションを Air アプリケーションの HTML コンポーネントで起動します。Air アプリケーションのトレース出力はキャプチャできますが、flex アプリケーションのトレース出力はキャプチャできません。この flex アプリケーションは、Air アプリケーションの HTML コンポーネントで起動されます。ログ出力を出力する vizy を使用します。Flex Web アプリケーションのトレース出力をキャプチャするにはどうすればよいですか。ありがとう
1062 次
1 に答える
0
考えられる解決策の 1 つは、デバッグ トレースに 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 に答える