2008-09-19 16 views
5

Czy istnieje sposób na przechwytywanie instrukcji śledzenia w aplikacji Flex, gdy nie jest on uruchomiony w trybie debugowania?Rejestrowanie produkcji w programie Flex

Czy jest jakiś inny sposób na wyprowadzanie informacji rejestracyjnych, gdy nie jest uruchomiony debugger?

Obecnie próbuję naprawić błąd, który pojawia się tylko w bardzo konkretnym scenariuszu wdrażania, ale widzę, że jest to przydatne w niektórych przypadkach, gdy klienci przesyłają dzienniki do pomocy technicznej, gdy zgłaszają błędy lub inne problemy.

Odpowiedz

3

Przypuszczam, że mówisz o Adobe Flex, kierując reklamy na Flash Player?

Jeśli tak, możesz napisać własną klasę opakowania rejestrowania, która propaguje komunikaty dziennika wysłane do kilku obiektów docelowych (takich jak stos śledzenia i pamięć wewnętrzna, dzięki czemu można uzyskać dostęp do dziennika z poziomu aplikacji i np. Wysłać go do serwer, gdy użytkownik zgodzi się wysłać raport o błędzie). Zobacz także Flex logging framework coś podobnego, co już istnieje.

ja faktycznie zrobić coś takiego - Mam klasy o nazwie Log z metod statycznych jak log(), debug(), error() itd., Które używam w mojej aplikacji, a ta klasa przekazuje wszystkie komunikaty wysyłane do niego w ślad stos przez trace(), do aplikacji "log konsoli" uruchomionej na tym samym hoście za pośrednictwem LocalConnection i/lub Socket (połączenie z gniazdem jest oczywiście dużo szybsze niż LocalConnection), a także zapisuje je lokalnie w tablicy, dzięki czemu użytkownicy mogą wysyłać raporty o błędach wzdłuż z wyjściem dziennika bezpośrednio z poziomu aplikacji.

Ten rodzaj zmiany oznacza, że ​​trzeba przetłumaczyć wszystkie komendy trace() w kodzie na połączenia do systemu rejestrowania, ale można to łatwo osiągnąć, zastępując wyrażenie regex &.

0

Możesz wypróbować XPanel z Farata Systems. Jest to macierzysty interfejs użytkownika systemu Windows, który może wyświetlać komunikaty dziennika za pomocą interfejsu API rejestrowania Flex 3, nawet w przypadku aplikacji Flex działających w przeglądarce. Niestety przeprojektowali swoją witrynę i nie mogę jej już znaleźć ... Może Google Ci pomoże.

Zrobiliśmy coś zupełnie za pomocą JavaScript. Klient może otworzyć stronę "specjalną", która pokazuje instrukcje rejestrowania i śledzenia za pomocą DHTML. Aplikacja Flex wywołuje funkcję JavaScript, która informuje aplikację, czy ta strona jest otwarta, czy nie. Jeśli tak nie jest, rejestrowanie jest wyłączone. Jeśli jest otwarty, rejestrowanie jest włączone i wszystkie instrukcje dziennika są dołączane do tej strony.

Należy zauważyć, że nie ma możliwości zapisywania wyników logowania do systemu plików przez cały czas ze względu na ograniczenia piaskownicy. Jednak klient może łatwo skopiować i wkleić dane wyjściowe okna rejestrowania, jak wyjaśniono powyżej.

2

Jest to projekt na Google Code o nazwie Thunder Bolt który pozwala na pisanie wiadomości, które pojawią się w FireBug przy uruchamianiu aplikacji w Firefoksie (zakładając oczywiście, że masz zainstalowanego tego rozszerzenia.)

Rejestrowanie z tego narzędzia zalogować jest tak proste, jak:

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