[pixLib] - import com.bourre.log.LogChannel
Par Laurent Deketelaere le samedi, janvier 7 2006, 13:47 - Flash plateforme - Lien permanent
Trois jours après la présentation du logguer de pixLib, Francis nous a rajouté une nouvelle fonction au Logguer de pixLib, l'objet LogChannel. Ainsi qu'une indépendance complète vis à vis des classes de LuminicBox (plus besoin de charger le pack). Je me devais de vous faire une petite présentation de cette dernière pour rester à jour :p
L'objet LogChannel est un «filtre» au niveau de l'animation Flash, pour être plus précis, il s'agit d'un troisième argument que l'on rajoute lors du Logger.Log(), cet argument peut-être considéré comme un typage de l'événement. Pour effectuer le tri, il faut rajouter ce «type» d'évenement comme argument des Logger.getInstance().addListener(), ce qui aura comme effet d'envoyer uniquement les éléments qui possède le bon LogChannel (type), c'est pas cool ça? :p
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 :
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 :
Type ouvert :
XML ouvert :
Hormis la limitation du LocalConnection (limité à 40ko par envois) qui est utilisé dans FlashInspector, cet outil est vraiment terrible pour débugguer une application.
Commentaires
Excellent outils en effet!
Néanmoins, il souffre d'un bug génant dans la réprésentation des objets XML puisque le contenu compris entre des balises CDATA n'y apparait pas. Il faut copier/coller le contenu dans un fichier txt pour le voir.
Prise de tête en perspective quand on l'ignore.
++