ASDebuger

  • Dumperを組み込んだデバッグ用のライブラリ
  • 共通のインターフェースでデバッグツールに出力ができる
  • plugin を使用してめんどくさい処理を簡単にできる
    • Dumper, Flash Player関連(player version, security level, memory, os)は標準で組み込まれている
  • Plugin, Debuger 共に簡単に作成し、追加できる
  • 出力は debug, info, errro, warn の4段階に対応
  • 出力レベルによるログレベルの切り分け可能
  • 現状、32KB (2008/12/17日)
  • ASReflect を使用しているため、使用の際は気をつけてください。

plugin の作成

  • net.dealforest.ASDebuger.plugins.PluginBase? を継承すればOKです
  • その後 Logger.p.set("作成したPlugin"); で追加されます(詳細は後日、追加します)

debuger の作成

  • net.dealforest.ASDebuger.debugers.DebugerBase? を継承します。
  • その後 Logger.d.set("作成したDebuger"); で追加されます。(詳細は後日、追加します)

コード

サンプル

使い方

1. ASDbuger-○○.swc または src 以下と ASReflect をクラスパスが通る場所におく
2. import net.dealforest.ASDebuger.Logger;
3. Logger.initialize() を実行 4. もてあそぶ

import net.dealforest.ASDebuger.Logger;

//初期化
Logger.initialize();

//デバッグツールを使用するか否か
Logger.available = false;
//デバッグレベルの設定
//10: debug -> 11にすると debug のものは出力されなくなる
//20: info
//30: warn
//40: error
Logger.errorLevel = 12;

//登録している debuger に出力
Logger.print(....);

//plugin の追加、削除
Logger.plugin.unset(new Dumper(), new FlashPlayerUtils());
Logger.plugin.set(new Dumper(), new FlashPlayerUtils());

//shortcut
Logger.p.set(new Dumper(), new FlashPlayerUtils());

//plugin の取得
Logger.p.get('Dumper');
var dumper:Dumper = Logger.p.get('Dumper');
dumper.tab = 2;

//使用中の plugin の取得
Logger.print(Logger.p.used());

//plugin の詳細設定
var dumper:PluginBase = Logger.plugin.get('Dumper');
dumper.tab = 2;


//debuger の追加、削除
Logger.debuger.unset(new FirebugDebuger(), new TraceDebuger());
Logger.debuger.set(new FirebugDebuger(), new TraceDebuger());

//shortcut
Logger.d.set(new FirebugDebuger(), new TraceDebuger());

//出力先を thunderbolt にする方法
var traceDebuger:* = Logger.d.get('TraceDebuger');
traceDebuger.thunderbolt = true

//使用中の debuger の取得
Logger.print(Logger.d.used());


//plugin の使用
Logger.context.dump([{1:'hoge', 2:'fuga', 3:['hoge', {'ore': 'orz'}]}, 1, 2, 3]); //第一引数に配列で渡したものを解析し出力する
Logger.c.dump([new XML(<hoge><fuga>foo</fuga></hoge>), 'info);  //デバッグのタイプを info として出力

Logger.c.playerVersion();  //player のバージョンの出力
Logger.c.securityLevel();  //security level を出力
Logger.c.memorySnapShot(); //使用メモリを出力
Logger.c.os();             //os のバージョンの出力