У меня была такая же проблема с моим видеоплеером. Вот что я придумал.
Я создал статический класс Log, который я использую вместо trace.
Log.s("[info] Bla.onRemove")
Затем внутри статического метода s я помещаю строку в массив и отслеживаю строку. Я добавил опцию щелчка правой кнопкой мыши, чтобы скопировать логи в буфер обмена. О, возможно, вы захотите зашифровать журналы, чтобы пользователь их не видел.
Я сомневался в том, чтобы поместить это множество элементов в массив. Но после некоторого профилирования и тестирования у меня было более 60 тыс. Элементов в массиве, и я не заметил увеличения объема памяти, поэтому думаю, что это довольно безопасно.
Другие мои идеи заключались в том, чтобы создать приложение AIR и подключить его через LocalConnection, но у меня были некоторые проблемы с установкой этого подключения. Хотя у меня гораздо меньше уверенности в стабильности LocalConnections.
Если вам нравится это решение и вы хотите увидеть больше кода, дайте мне знать.