Question

Existe-t-il un moyen de capturer les instructions de trace de votre application Flex sans exécuter le mode débogage?

Ou existe-t-il un autre moyen de générer des informations de journalisation sans exécuter le débogueur?

J'essaie actuellement de résoudre un bogue qui ne se présente que dans des scénarios de déploiement très spécifiques, mais je vois que cela peut être utile dans certains cas pour les clients qui envoient des journaux au support technique lorsqu'ils signalent des bogues ou d'autres problèmes.

Était-ce utile?

La solution

Je suppose que vous parlez d'Adobe Flex, qui cible Flash Player?

Si tel est le cas, vous pouvez écrire votre propre classe d'encapsulation de journalisation qui propage les messages de journalisation qui lui sont envoyés vers plusieurs cibles (comme la pile de trace et la mémoire interne, de sorte que vous puissiez accéder au journal à partir de l'application et l'envoyer par exemple à un serveur. lorsque l'utilisateur accepte d'envoyer un rapport de bogue). Consultez également le structure de journalisation Flex pour quelque chose comme ça qui existe déjà.

J'ai en fait fait quelque chose comme ceci: j'ai une classe appelée Log avec des méthodes statiques comme log () , debug () , error () , etc. que j'utilise dans mes applications, et cette classe transfère tous les messages qui lui sont envoyés dans la pile de trace via trace () , dans un " console de journalisation " Une application fonctionnant sur le même hôte via LocalConnection et / ou Socket (une connexion de socket est évidemment beaucoup plus rapide que LocalConnection) et les enregistre localement dans un tableau afin que les utilisateurs puissent envoyer des rapports de bogue avec la sortie du journal directement à partir de l'application.

Cette sorte de changement de cap signifie que vous devez traduire toutes les commandes trace () de votre code en appels au système de journalisation, mais cela peut être facilement réalisé avec une recherche regex. & amp; remplacer.

Autres conseils

Il existe un projet sur Google Code appelé Thunder Bolt qui permet vous écrivez des messages de journal qui apparaîtront dans FireBug lors de l'exécution de l'application dans Firefox (en supposant bien sûr que vous avez cette extension installée.)

La journalisation avec cet outil est aussi simple que:

import org.osflash.thunderbolt.Logger;

var myNumber: int = 5;
var myString: String = "Lorem ipsum";
Logger.error ("Logging two objects: A number typed as int and a string", myNumber, myString);

J'ai utilisé alcon par le passé.

http://blog.hexagonstar.com/alcon/

Vous pouvez essayer XPanel de Farata Systems. Il s'agit d'une interface utilisateur Windows native pouvant afficher les messages de journal à l'aide de l'API de journalisation Flex 3, même pour les applications Flex exécutées dans un navigateur. Malheureusement, ils ont repensé leur site et je ne le retrouve plus ... Peut-être que Google pourra vous aider.

Nous avons fait quelque chose de différent en utilisant JavaScript. Le client peut ouvrir une page "spéciale" qui affiche les instructions de journalisation et de suivi à l'aide de DHTML. L'application Flex appelle une fonction JavaScript qui indique à l'application si cette page est ouverte ou non. Si ce n'est pas le cas, la journalisation est désactivée. S'il est ouvert, la journalisation est activée et toutes les instructions du journal sont ajoutées à cette page.

Notez qu'il n'y a aucun moyen d'écrire la sortie de journalisation sur le système de fichiers à tout moment en raison des restrictions du bac à sable. Toutefois, un client peut facilement copier et coller le résultat de la fenêtre de journalisation, comme expliqué ci-dessus.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top