Exemple basé sur ce que Francis a présenté sur la mailingList de pixLib :

import com.bourre.log.*;
import com.bourre.utils.LuminicTracer;
import com.bourre.data.libs.XMLToObject;
 
// Création d'un filtre
var filtreChannel : LogChannel = new LogChannel("FILTRE");
 
// Ajoute du filtre lors de la création d'écouteur
Logger.getInstance().addLogListener( LuminicTracer.getInstance(), filtreChannel);

// Certains objets comme XmlToObject utilisent le chanel
// par defaut de pixlib : PixlibDebug.channel
// une fois abonnée c'est comme si le «mode» débug de pixLib était activé.
Logger.getInstance().addLogListener( LuminicTracer.getInstance(), PixlibDebug.channel);   // Appel des logs Logger.LOG("pif", LogLevel.INFO); Logger.LOG("paf", LogLevel.INFO, filtreChannel); Logger.LOG("pouf", LogLevel.INFO);   // Création d'un XMLToObject var xmlError : XMLToObject = new XMLToObject(); xmlError.load("http://www.geturl.net/inexistante.xml");

sortie :

LogChannel

Je profite de ce ticket pour voir plus en détail les fonctions de FlashInspector. Il faut savoir que FlashInspector reconnaît plusieurs types d'objet intrinsec à Flash et les affiche différemment selon. Liste des types gérés :

  • DATE
  • ARRAY
  • BUTTON
  • MOVIECLIP
  • XML node
  • COLOR

Les types STRING, BOOLEAN, NUMBER, UNDEFINED et NULL sont eux géré de la même façon, sous forme de String.

Code :

import com.bourre.log.*;
import com.bourre.utils.LuminicTracer;
 
// init
var o : Object = {_pif:"pif", _paf:"paf", _pouf:"pouf"};
var a : Array = ["pif", "paf", "pouf"];
var mc : MovieClip = this.createEmptyMovieClip("mcLeClip", this.getNextHighestDepth());
var day : Date = new Date();
var c : Color = new Color(mc);
c.setRGB(0x993366);
var xml : XML = new XML("<root><exemples><exemple /><exemple /></exemples></root>");
var n : Number = 123;
var s : String = "pif, paf, pouf";
 
// Ajoute du filtre lors de la création d'écouteur
Logger.getInstance().addLogListener( LuminicTracer.getInstance() );
 
// Appel des logs
Logger.LOG(o, LogLevel.INFO);
Logger.LOG(a, LogLevel.INFO);
Logger.LOG(mc, LogLevel.INFO);
Logger.LOG(day.getDate(), LogLevel.INFO);
Logger.LOG(c, LogLevel.INFO);
Logger.LOG(xml, LogLevel.INFO);
Logger.LOG(n, LogLevel.INFO);
Logger.LOG(s, LogLevel.INFO);
Logger.LOG(undefined , LogLevel.INFO);
Logger.LOG(null , LogLevel.INFO);

Sortie normale :

Flash Inspector

Type ouvert :

Flash Inspector

XML ouvert :

Flash Inspector XML

Hormis la limitation du LocalConnection (limité à 40ko par envois) qui est utilisé dans FlashInspector, cet outil est vraiment terrible pour débugguer une application. :)