Flex Log的使用方法

Flex有內建了一套將trace包裝得更高階的 Log Framework可以用。trace()是開發ActionScript的好伴侶,不過當有更高階的需要時又顯得太陽春。

Flex Log的兩大元件為Log和TraceTarget,TraceTarget相關類別是用來指定輸出的目的地,比如TraceTarget本身就是包裝了trace()命令。所以說也可以繼承target的相關類別,將輸出改為輸出到其他地方,如socket。Log則是用來輸出你的log紀錄。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="onComplete()">

<mx:Script>
<![CDATA[
import mx.logging.LogEventLevel;
import mx.logging.Log;
import mx.logging.targets.TraceTarget;
private var _target : TraceTarget;

private function onComplete():void{
_target = new TraceTarget();
// _target.includeCategory = true; // 包含的輸出種類
// _target.includeDate = true;
_target.includeTime = true;
_target.includeLevel = true;
_target.filters = ["com.*"]; // * 可用於過濾
// _target.level = LogEventLevel.ALL;  // 以下為各顯示層級,層級高低按照排列列出
// _target.level = LogEventLevel.DEBUG;
_target.level = LogEventLevel.INFO; //  層級彼此之間有階層關係,使用info過濾的話,以下的層級都會顯示,以上不會顯示
// _target.level = LogEventLevel.WARN;
// _target.level = LogEventLevel.ERROR;
// _target.level = LogEventLevel.FATAL;
Log.addTarget( _target );
}

private function sendToLog():void{
Log.getLogger("com.this1").info("Testing Log1");
Log.getLogger("com.this2").info("Testing Log2");
Log.getLogger("com.this3").info("Testing Log3");
Log.getLogger("com.this1.a").debug("Testing Log4");
Log.getLogger("com.this1.b").warn("Testing Log5");
Log.getLogger("com.this2").debug("Testing Log6");
Log.getLogger("com.this2").warn("Testing Log7");
Log.getLogger("com.this3").error("Testing Log9");
Log.getLogger("com.this3").fatal("Testing Log8");
}

]]>
</mx:Script>
<mx:Button click="sendToLog()" label="Go Log"/>
</mx:Application>

留言

這個網誌中的熱門文章

3dmax的biped如何使用CMU的免費motion capture資源

如何在AS3 project中使用Flex的mx.utils類別庫?

如何把3dmax的physique轉成skin