5

デバッグ モードで実行していないときに、Flex アプリのトレース ステートメントをキャプチャする方法はありますか?

または、デバッガーを実行していないときにログ情報を出力する他の方法はありますか?

現在、非常に特定の展開シナリオでのみ発生するバグを修正しようとしていますが、顧客がバグやその他の問題を報告しているときにテクニカル サポートにログを送信する場合に、これが役立つ場合があります。

4

4 に答える 4

3

Flash Player を対象とした Adob​​e Flex について話しているのでしょうか。

その場合、送信されたログ メッセージを複数のターゲット (トレース スタックや内部メモリなど) に伝播する独自のログ ラッパー クラスを記述して、アプリ内からログにアクセスし、たとえば、ユーザーがログをサーバーに送信するときにログを送信することができます。バグレポートを送信することに同意します)。すでに存在するこのようなものについては、 Flex ロギング フレームワークも参照してください。

私は実際にこのようなことをしました -アプリで使用する、などのLog静的メソッドで呼び出されるクラスがあり、このクラスに送信されたすべてのメッセージは、 経由でトレース スタックに転送され、「ログ コンソールに」 LocalConnection および/または Socket を介して同じホスト上で実行されているアプリ (ソケット接続は明らかに LocalConnection よりもはるかに高速です) をローカルに配列に保存し、ユーザーがログ出力と共にバグ レポートをアプリ内から直接送信できるようにします。 .log()debug()error()trace()

もちろん、この種の変更は、コード内のすべてのtrace()コマンドをロギング システムへの呼び出しに変換する必要があることを意味しますが、これは正規表現の検索と置換で簡単に実現できます。

于 2008-09-19T21:04:01.850 に答える
2

Thunder Boltと呼ばれるGoogleCodeのプロジェクトがあり、Firefoxでアプリケーションを実行したときにFireBugに表示されるログメッセージを書き込むことができます(もちろん、その拡張機能がインストールされていることを前提としています)。

このツールを使用したロギングは、次のように簡単です。

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);
于 2008-10-10T14:19:39.263 に答える
1

以前はアルコールを使用していました。

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

于 2008-10-10T14:44:32.113 に答える
0

Farata Systems の XPanel を試すことができます。これは、ブラウザで実行されている Flex アプリケーションに対しても、Flex 3 Logging API を使用してログ メッセージを表示できるネイティブの Windows UI です。残念ながら、彼らはサイトを再設計したため、もう見つけることができません... 多分Googleがあなたを助けてくれるでしょう.

JavaScript を使用して別のことを行いました。顧客は、DHTML を使用してログおよびトレース ステートメントを表示する「特別な」ページを開くことができます。Flex アプリケーションは、このページが開いているかどうかをアプリケーションに通知する JavaScript 関数を呼び出します。そうでない場合、ログは無効になります。開くと、ログが有効になり、すべてのログ ステートメントがこのページに追加されます。

サンドボックスの制限により、常にログ出力をファイルシステムに書き込む方法はないことに注意してください。ただし、お客様は、上記で説明したように、ログ ウィンドウの出力を簡単にコピーして貼り付けることができます。

于 2008-09-22T08:29:42.590 に答える