2008-09-17 11 views
8

Какой был бы лучший способ реализовать простой механизм отчетности о сбоях/ошибках?Как лучше всего реализовать простые отчеты об ошибках/ошибках?

Детали: мое приложение является кросс-платформенным (mac/windows/linux) и написано на Python, поэтому мне просто нужно что-то, что отправит мне небольшое количество текста, например. просто отметка времени и трассировка (которую я уже создаю и показываю в своем диалоговом окне ошибок).

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

Спасибо!

+0

Есть ли у вас реализация, которую вы хотели бы разделить, особенно на стороне сервера? Ура! – 2012-10-09 18:49:40

ответ

4

Веб-сервис является лучшим способом, но есть некоторые оговорки:

  1. Вы всегда должны спросить пользователя, если это нормально, чтобы отправить информацию обратной связи об ошибке.
  2. Вы должны быть готовы к сбою изящно, если есть сетевые ошибки. Не позволяйте отказу сообщать о сбое, препятствующем восстановлению!
  3. Вам не следует включать идентификацию пользователя или конфиденциальную информацию, если только пользователь не знает (см. № 1), и вы должны использовать SSL или иным образом защищать его. Некоторые юрисдикции налагают на вас бремя, с которыми вы, возможно, не захотите иметь дело, поэтому лучше просто не сохранять такую ​​информацию.
  4. Как и любой веб-сервис, убедитесь, что ваш сервис не используется злоумышленниками.
1

Веб-хит - это путь, но убедитесь, что вы выбрали хороший URL-адрес - ваше приложение будет бить его на долгие годы.

0

Независимо от того, используете ли вы SMTP или HTTP для отправки данных, вам необходимо указать имя пользователя/пароль в приложении, чтобы никто не мог отправлять вам случайные данные.

Имея это в виду, я подозреваю, что было бы проще использовать SMTP, а не HTTP для отправки данных.

0

Простейшего простого веб-сервиса было бы достаточно. Вы должны были бы рассмотреть безопасность, чтобы не только каждый мог делать запросы к вашим услугам.

В более крупном масштабе мы рассматривали систему обмена сообщениями JMS. Поместите сериализованный объект данных, содержащий сообщение трассировки/ошибки, в очередь и потребляйте его каждые x минут, генерируя отчеты/предупреждения из этих данных.

3

Я не могу придумать способ сделать это, не включая имя пользователя и пароль для сервера SMTP в приложении ...

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

Сказав, что некоторые интернет-провайдеры блокируют исходящий трафик на порте 25, поэтому наиболее надежной альтернативой является HTTP POST, который вряд ли будет заблокирован чем-либо.Не забудьте выбрать URL-адрес, который вам пока не будет ограничен, или еще лучше, чтобы приложение периодически проверяло наличие обновлений, поэтому, если вы решите изменить домены или что-то еще, вы можете нажать обновление заранее.

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

Что касается полезной нагрузки, то PyCrash может помочь вам в этом.

 Смежные вопросы

  • Нет связанных вопросов^_^