2013-08-27 8 views
0

나는 Air 응용 프로그램을 가지고 있습니다. HTML 구성 요소로 구성됩니다. Flex 어플리케이션을 생성하고 Air Application의 HTML 컴포넌트에서이 어플리케이션을 시작합니다. Air 응용 프로그램의 추적 출력을 캡처 할 수 있지만 플렉스 응용 프로그램의 추적 출력을 캡처 할 수 없습니다. 이 flex 어플리케이션은 Air 어플리케이션의 HTML 컴포넌트에서 시작됩니다. 로그 인쇄물을 출력하는 vizy를 사용합니다. 어떻게 플렉스 웹 어플리케이션의 트레이스 출력을 캡쳐 할 수 있습니까? 감사합니다플렉스 응용 프로그램의 추적 출력을 캡처하는 방법은 무엇입니까?

+0

그래서 AIR 응용 프로그램에는 flex 응용 프로그램을 실행하는 HTML 조각이 있습니까? – ethrbunny

+0

예, Air 애플리케이션에는 Flex (웹) 앱을로드하고 표시하는 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"); 
     } 
    } 
} 

이 특정 구현은 문자열의 벡터에 모든 추적을 저장하지만 로그를 디스크에 저장하거나 서비스에 보내거나 화면에서 추적 할 수 있습니다.