プロジェクトの開発中に、特に大きいなプロジェクトで、バッグの発生するのは避けないことです。モジュールが多くて、ソース量もすっごく多いので、何のモジュールの何の関数に不具合を発生する確定は難しいです。

一般的な対策として、運用中ログ(Fatal,error,warm,info,debug)を出力とします。何か問題を発生して出力されたログファイルを探すとエラーを発生の原因、場所を分かれますね。

Flexに対して、Flex SDK中に既にmx.logging.*パッケージを含めています。これを利用すると各レベルログの出力は簡単となれます。

詳しいサンプルソースは以下のようです(該当サンプルはファイルへ出力するまでではなくて、ログ情報を取得するまでだけです)。

1)、初期化、TraceTargetを追加する

  1. var traceTarget : TraceTarget = new TraceTarget();
  2. traceTarget.includeCategory = true;
  3. traceTarget.includeDate = true;
  4. traceTarget.level = LogEventLevel.ALL;//ログレベル、ALLだったら全種類出力
  5. //traceTarget.filters = ["somecate"];//
  6. Log.addTarget(traceTarget);

2)、LogEventリスナーをセット

  1. log.addEventListener(LogEvent.LOG, logHandler);

3)、ログをサーバへ送信

  1. private function logHandler(event : LogEvent) : void
  2. {
  3. var c : String = (event.currentTarget as ILogger).category;
  4. //Alert.show(StringUtil.substitute(”cate:\t{0},\nmsg:\t{1},\nlevel:\t{2}”, c, event.message, LogEvent.getLevelString(event.level) )
  5. ,”use Log in flex3″ );
  6. //call besiness delegate to send log info to server.
  7. }

4)、ログ対象オブジェクトを取得

  1. var log : ILogger = Log.getLogger(somecate);
  2. //log.log(level, msg, …rest)

5)、サーバ側にログ情報を自由で分類して必要なところに保存とする(ファイルとかデータベースへとか)

メインコンテンツEND ■
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Posted on Sunday, 23rd November 2008 by admin

Tags: , ,
Posted in Flex | Comments (0) | 605 views

Related Posts

Leave a Reply