Frage

Gibt es eine Möglichkeit, die Trace-Anweisungen Ihrer Flex App zu erfassen, während nicht im Debug-Modus ausgeführt wird?

Oder gibt es eine andere Möglichkeit zur Ausgabe von Protokollinformationen, wenn sie nicht einen Debugger ausgeführt wird?

Zur Zeit versuche ich, einen Fehler zu beheben, die sich nur in ganz bestimmten Einsatzszenario präsentiert, aber ich konnte sehen, dies in einigen Fällen nützlich für Kunden Protokolle an den technischen Support zu senden, wenn sie Fehler oder andere Probleme berichten.

War es hilfreich?

Lösung

Ich nehme an, Sie reden über Adobe Flex, Targeting der Flash Player?

Wenn ja, können Sie Ihre eigene Logging-Wrapper-Klasse schreiben, die auf mehrere Ziele, um es Log-Meldungen gesendet ausbreitet (wie der Trace-Stack und den internen Speicher, so dass Sie das Protokoll aus der App zugreifen können und zB an einen Server senden wenn die Nutzer verpflichtet, einen Fehlerbericht zu senden). Siehe auch den Flex Logging-Framework für etwas wie diese, die bereits vorhanden ist.

ich so etwas wie dies tatsächlich getan habe - ich habe eine Klasse Log mit statischen Methoden wie log() genannt, debug(), error() usw., die ich in meiner Apps nutzen, und diese Klasse leitet alle Nachrichten, um sie in den Trace-Stack gesendet über trace(), in einen „log-Konsole“ App auf dem gleichen Host über Localconnection und / oder Sockel läuft (eine Socket-Verbindung ist offensichtlich viel schneller als Localconnection) und sie auch vor Ort in ein Array speichert, so dass Benutzer Berichte Fehler entlang senden können mit die Log-Ausgabe direkt aus der App heraus.

Diese Art von einem Kurswechsel bedeutet, dass Sie alle trace() Befehle in Ihrem Code in Aufrufe an das Protokollierungssystem übersetzen müsste, aber das kann leicht mit einer Regex Suchen & Ersetzen erreicht werden.

Andere Tipps

Es gibt ein Projekt auf Google Code Thunderbolt , die erlaubt schreiben Sie Nachrichten protokollieren, die in FireBug angezeigt wird, wenn die Anwendung ausgeführt wird in Firefox (vorausgesetzt natürlich, dass Sie die Erweiterung installiert haben.)

Protokollierung mit diesem Tool ist so einfach wie:

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);

Ich habe alcon in der Vergangenheit verwendet.

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

Sie können versuchen, XPanel von Farata Systeme. Dies ist ein native Windows-Benutzeroberfläche, die Log-Meldungen mit dem Flex 3 Logging API auch für Flex-Anwendungen in einem Browser ausgeführt zeigen kann. Leider können sie ihre Website neu gestaltet und ich es nicht mehr finden ... Vielleicht wird Google Ihnen helfen.

Wir haben etwas anderes mit Hilfe von JavaScript. Der Kunde kann sich öffnen eine ‚besondere‘ Seite, die Protokollierung und Trace-Anweisungen unter Verwendung von DHTML zeigt. Die Flex-Anwendung ruft eine JavaScript-Funktion, die die Anwendung sagt, ob diese Seite geöffnet ist oder nicht. Wenn dies nicht der Fall, wird die Protokollierung deaktiviert. Wenn es geöffnet wird, Protokollierung aktiviert ist und alle Log-Anweisungen werden auf dieser Seite angehängt.

Beachten Sie, dass es keine Möglichkeit gibt Protokollierung Ausgabe auf das Dateisystem die ganze Zeit wegen Sandbox-Einschränkungen zu schreiben. Jedoch kann ein Kunde ganz einfach kopieren und die Ausgabe der Logging-Fenster einfügen, wie oben erläutert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top