См. мой ответ .
В реальных данных это реальная проблема: множественные, несоответствующие, неполные, непоследовательные и многоязычные / регистровые форматы даты, часто смешанные свободно в один набор данных.
Нам нужно попробовать ... уловить несколько форматов datetime fmt1, fmt2, ..., fmtn и подавить / обработать исключения (из strptime()
) для всех несоответствующих (и, в частности, избегать использования yukky n-deep с отступом лестницы try..catch). См. мое решение
Я предполагаю, что Вы говорите о Adobe Flex, будучи нацелен на Flash player?
Если так, можно записать собственный класс обертки входа, который распространяет сообщения журнала, отправленные в него к нескольким целям (как стековая память трассировки и внутренняя память так, чтобы можно было получить доступ к журналу из приложения и например, отправить его на сервер, когда пользователь соглашается отправить отчет об ошибках). Также посмотрите платформу журналирования Flex для чего-то вроде этого, что уже существует.
Я на самом деле сделал что-то вроде этого - мне назвали класс Log
со статическими методами как log()
, debug()
, error()
и т.д. то, что я использую в своих приложениях, и этот класс передает все сообщения, отправленные в него в стопку трассировки через trace()
, в "консольное приложение" журнала, работающее на том же хосте через LocalConnection и/или Сокет (сокетное соединение, очевидно, намного быстрее, чем LocalConnection) и также, сохраняет их локально в массив так, чтобы пользователи могли отправить отчеты об ошибках наряду с выводом журнала прямо из приложения.
Этот вид смены курса означает, что необходимо было бы перевести все trace()
команды в Вашем коде в вызовы к системе регистрации, но это может быть легко достигнуто с поиском regex и заменой.
Можно попробовать XPanel от Систем Farata. Это - собственный Windows UI, который может показать сообщения журнала с помощью Flex 3, Регистрирующего API даже для приложений Flex, работающих в браузере. К сожалению, они перепроектировали свой сайт, и я не могу больше находить его... Google Maybe поможет Вам.
Мы сделали что-то другое с помощью JavaScript. Клиент может открыть 'специальную' страницу, которая показывает вход и операторы трассировки с помощью DHTML. Приложение Flex вызывает функцию JavaScript, которая говорит приложение, открыта ли эта страница или нет. Если это не, вход отключен. Если это открыто, вход включен, и все операторы журнала добавляются к этой странице.
Обратите внимание, что нет никакого способа записать вывод входа в файловую систему все время, должную поиграть в песочнице ограничения. Однако клиент может легко скопировать и вставить вывод регистрирующегося окна, как объяснено выше.
Существует проект на Google Code под названием Болт Грома, который позволяет Вам писать сообщения журнала, которые появятся в 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);