プロジェクトの開発中に、特に大きいなプロジェクトで、バッグの発生するのは避けないことです。モジュールが多くて、ソース量もすっごく多いので、何のモジュールの何の関数に不具合を発生する確定は難しいです。
一般的な対策として、運用中ログ(Fatal,error,warm,info,debug)を出力とします。何か問題を発生して出力されたログファイルを探すとエラーを発生の原因、場所を分かれますね。
Flexに対して、Flex SDK中に既にmx.logging.*パッケージを含めています。これを利用すると各レベルログの出力は簡単となれます。
詳しいサンプルソースは以下のようです(該当サンプルはファイルへ出力するまでではなくて、ログ情報を取得するまでだけです)。
1)、初期化、TraceTargetを追加する
- var traceTarget : TraceTarget = new TraceTarget();
- traceTarget.includeCategory = true;
- traceTarget.includeDate = true;
- traceTarget.level = LogEventLevel.ALL;//ログレベル、ALLだったら全種類出力
- //traceTarget.filters = ["somecate"];//
- Log.addTarget(traceTarget);
2)、LogEventリスナーをセット
- log.addEventListener(LogEvent.LOG, logHandler);
3)、ログをサーバへ送信
- private function logHandler(event : LogEvent) : void
- {
- var c : String = (event.currentTarget as ILogger).category;
- //Alert.show(StringUtil.substitute(”cate:\t{0},\nmsg:\t{1},\nlevel:\t{2}”, c, event.message, LogEvent.getLevelString(event.level) )
- ,”use Log in flex3″ );
- //call besiness delegate to send log info to server.
- }
4)、ログ対象オブジェクトを取得
- var log : ILogger = Log.getLogger(’somecate’);
- //log.log(level, msg, …rest)
5)、サーバ側にログ情報を自由で分類して必要なところに保存とする(ファイルとかデータベースへとか)
メインコンテンツEND ■
Posted on Sunday, 23rd November 2008 by admin
Tags: Flex, logging, ログ
Posted in Flex | Comments (0) | 4,153 views
