2011-06-27 3 views
3

いくつかのプロジェクトで、pplに独自の「デバッグクラス」があることがわかりました。デバッグクラスを作成する

したがって、trace( "look at this!")の代わりにDebug.trace( "look at this!")と入力します。

私が見た唯一の利点は、Debugクラスの1つのパラメータですべての単一のトレース呼び出しを無効にできることでした。

私の質問は、AS3でDebugクラスを使用するとどのような利点が得られますか?

答えて

3

私は実際に自分のデバッグクラスをそのように使用しません。私はそれのためのロギングフレームワークを持っています、それはロギングのためのものです。マイDebugクラスは、私もgetLinesメソッドを持っている

// I usually use these for debugging and it avoids the need of an 
// additional import. 
function whatIs(obj:*):String{ return getQualifiedClassName(obj)} 
function describe(obj:*):XML{ return describeType(obj); } 

のようなものを持っている - 私は簡単に伐採跡を見て、特定のポイントを見ることができるように、それは、長い文字列を返します。

しかし、最も重要な1:

function getStack():String { 
    try 
    { 
     throw new Error("Someone set us up the bomb!"); 
    } 
    catch(e:Error) 
    { 
     return e.getStackTrace(); 
    } 
} 

私も最近()getStackと呼ばれるメソッドの前に呼び出されたクラスやメソッドを返しgetStackのラッパを持っています。

+0

これは、リリースプレイヤーでトレース/デバッグステートメントを持つのにも優れています。それらはすべてあなたのDebugクラスを通過するので、それらを保存して、それらを "出力" TextFieldに表示することができます。あなたのリリースバージョンで何かがうまくいかない場合、あなたはまだデバッグ情報を持っています – divillysausages

+0

ああ、これはAS2でAS2でコマンドラインをビルドしました - 私はデバッグクラスを使用することなくデバッガを持っていました。 – cwallenpoole

1

デバッグクラスを使用すると、さまざまなレベル(通知、警告、エラー、クリティカル、黙示録など)を行うことができます。あなたが言及したように、あなたは単一の場所で無効にすることができます。メッセージにタイムスタンプを付けることができます。出力を別の場所に送信することができます。これは、ライブアプリケーションのデバッグや、まれに発生するデバッグのために非常に便利です。また、引数の型を検出し、デバッグ情報で別のことをするロジックを持つこともできます。

+0

+1「出力を別の場所に送信できます」 @Artemix、Debug.traceが行う唯一のことはtrace()を呼び出すことです。おそらく、localConnectionまたはexternalInterfaceも使用しており、出力をカスタムAIRアプリケーションにマーシャリングしたり、データをサーバーに送信したりしている可能性があります。開発者がtrace()呼び出しをミックスにロールバックしたという事実は、Ctrl + Enterスタイルローカルテストの便宜のために役立つかもしれませんが、実際の金はフラッシュ出力コンソールの外部にログオンする可能性があります。 – scriptocalypse

+0

この場合、それはその目的のためだけに使用されていましたが、私は「トラック」と呼ばれる方法があると思います。 – Artemix

関連する問題