プログラミングノート

一からものを作ることが好きなエンジニアの開発ブログです。

AIRIntrospectorでのログ出力方法

今までログ制御用のメソッドを作ったりしてたんですが、AIRIntrospectorを利用すれば下記のような感じでレベル分けしてログを出力できるというのをさっき知りました。さらに変数dumpのメソッドもあって、今までなんでAIRIntrospector.jsの中身を見なかったんだろうと。。

air.Introspector.Console.log('log msg');
air.Introspector.Console.warn('warn msg');  
air.Introspector.Console.info('info msg');  
air.Introspector.Console.error('error msg');  
air.Introspector.Console.dump({key:'val'});  


AIRIntrospector.jsはAIR SDKのframeworksフォルダに入っていますので、下記のようにロードするだけで利用できます(Flex3 SDKには含まれていませんでした)。ただ、Consoleメソッドを実行してしまうとIntrospectorウィンドウが起動してしまいますので、リリース時にはパッケージから外しておくのがいいと思います。

<script src="lib/air/AIRIntrospector.js" type="text/javascript"></script>


non-application sandboxからアクセスする場合は、sandboxの方でメソッドを公開する必要があります。

var parentInterface = {};

parentInterface.log = function(msg){
  air.Introspector.Console.log(msg);		
};
parentInterface.warn = function(msg){
  air.Introspector.Console.warn(msg);  
};
parentInterface.info = function(msg){
  air.Introspector.Console.info(msg);  
};
parentInterface.error = function(msg){
  air.Introspector.Console.error(msg);  
};
parentInterface.dump = function(msg, level){
  air.Introspector.Console.dump(msg, level);  
};

//non-application sandboxのIFRAME生成後に実行
document.getElementById('sandbox').contentWindow.parentSandboxBridge = parentInterface;