Ведение журнала производства во Flex - PullRequest
5 голосов
/ 20 сентября 2008

Есть ли способ перехватить операторы трассировки вашего приложения Flex, когда он не работает в режиме отладки?

Или есть какой-либо другой способ вывода информации журнала, когда не работает отладчик?

В настоящее время я пытаюсь исправить ошибку, которая проявляется только в очень специфическом сценарии развертывания, но в некоторых случаях я вижу, что это полезно для клиентов, когда они отправляют журналы в службу технической поддержки, когда они сообщают об ошибках или других проблемах.

Ответы [ 4 ]

3 голосов
/ 20 сентября 2008

Полагаю, вы говорите о Adobe Flex, ориентированном на Flash Player?

Если это так, вы можете написать свой собственный класс оболочки журналирования, который распространяет сообщения журнала, отправленные ему нескольким целям (например, стек трассировки и внутреннюю память), чтобы вы могли получить доступ к журналу из приложения и, например, отправить его на сервер. когда пользователь соглашается отправить отчет об ошибке). Также см. Flex logging framework для чего-то подобного, которое уже существует.

Я на самом деле сделал что-то вроде этого - у меня есть класс с именем Log со статическими методами, такими как log(), debug(), error() и т. Д., Которые я использую в своих приложениях, и этот класс перенаправляет все сообщения, отправленные ему в стек трассировки через trace(), в приложение «log console», работающее на том же хосте через LocalConnection и / или Socket (подключение через сокет, очевидно, намного быстрее, чем LocalConnection), а также сохраняет их локально в массив, чтобы пользователи могли отправлять отчеты об ошибках вместе с выводом журнала прямо из приложения.

Такое изменение курса означает, что вам нужно будет преобразовать все trace() команды в вашем коде в вызовы в систему ведения журнала, но этого легко достичь с помощью поиска и замены регулярных выражений.

2 голосов
/ 10 октября 2008

В коде Google есть проект под названием Thunder Bolt , который позволяет записывать сообщения журнала, которые будут отображаться в FireBug при запуске приложения в Firefox (при условии, конечно, что у вас это есть). расширение установлено.)

Регистрация с помощью этого инструмента так же проста, как:

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);
1 голос
/ 10 октября 2008

Я использовал alcon в прошлом.

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

0 голосов
/ 22 сентября 2008

Вы можете попробовать XPanel от Farata Systems. Это собственный пользовательский интерфейс Windows, который может отображать сообщения журнала с помощью API ведения журнала Flex 3 даже для приложений Flex, работающих в браузере. К сожалению, они изменили дизайн своего сайта, и я больше не могу его найти ... Может быть, Google поможет вам.

Мы сделали что-то другое, используя JavaScript. Клиент может открыть «специальную» страницу, на которой отображаются отчеты о ведении журнала и трассировке с использованием DHTML. Приложение Flex вызывает функцию JavaScript, которая сообщает приложению, открыта ли эта страница или нет. Если это не так, ведение журнала отключено. Если он открыт, ведение журнала включено, и все операторы журнала добавляются на эту страницу.

Обратите внимание, что из-за ограничений в песочнице нет возможности постоянно записывать выходные данные журнала в файловую систему. Однако клиент может легко скопировать и вставить выходные данные окна регистрации, как описано выше.

...