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

StackOverflow https://stackoverflow.com/questions/85985

Вопрос

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

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

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

Это было полезно?

Решение

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

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

Другие советы

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

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

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top