2013-08-27 87 views
0

我有一個空氣應用程序。它由一個HTML組件組成。我創建了一個Flex應用程序,並在Air Application的HTML組件中啓動此應用程序。我能夠捕獲Air應用程序的跟蹤輸出,但我無法捕獲Flex應用程序的跟蹤輸出。由於此Flex應用程序在Air應用程序的HTML組件中啓動。我使用vizy輸出日誌打印。我如何捕獲Flex Web應用程序的跟蹤輸出。謝謝如何捕獲flex應用程序的跟蹤輸出?

+0

因此,AIR應用程序具有運行Flex應用程序的HTML代碼片段? – ethrbunny

+0

是的,Air應用程序有一個加載和顯示flex(web)應用程序的HTML組件。 –

+0

您可能需要單獨調試它們。這似乎是一個麻煩的安排。 – ethrbunny

回答

0

一個可能的解決方案,使用mx.logging.Log調試跟蹤和自定義LogTarget來捕獲它們。

它會這樣。聲明必需的對象:

private var logTarget:MyLogTarget= new MyLogTarget(); 
private var myLog:ILogger; 

設置日誌,你初始化應用程序:

myLog=Log.getLogger("MyApp"); 
Log.addTarget(logTarget); 

登錄的東西:

myLog.info("Something something."); 
myLog.warn("This is weird!"); 
myLog.error("This shouldn't happen!"); 

解決方案的肉是自定義日誌目標,MyLogTarget .as:

package 
{ 
    import mx.logging.LogEvent; 
    import mx.logging.targets.LineFormattedTarget; 

    public class MyLogTarget extends LineFormattedTarget 
    { 

     public var log:Vector.<String>=new Vector.<String>; 

     public function MyLogTarget() 
     { 
      super(); 
     } 

     override public function logEvent(event:LogEvent):void 
     { 
      trace(event.message); 
      log.push(event.message+"\n"); 
     } 
    } 
} 

這個特殊的實現只是將所有的軌跡存儲在一個字符串矢量中,但是你可以修改它來保存日誌到磁盤,將它發送到服務,在屏幕上跟蹤它或者任何適合你的東西。