Question

Quel serait le meilleur moyen d'implémenter un mécanisme simple de signalement des incidents / erreurs?

Détails: mon application est multiplate-forme (mac / windows / linux) et écrite en Python . J'ai donc besoin de quelque chose qui m'enverra une petite quantité de texte, par exemple. juste un horodatage et une trace (que j'ai déjà générés et affichés dans ma boîte de dialogue d'erreur).

Ce serait bien si vous pouviez simplement l'envoyer par courrier électronique, mais je ne vois pas comment le faire sans inclure un nom d'utilisateur et un mot de passe pour le serveur smtp dans l'application ... Devrais-je implémenter un service Web simple côté serveur et que mon application lui envoie une requête HTTP avec les informations? De meilleures idées?

Était-ce utile?

La solution

Le service Web est la meilleure solution, mais certaines mises en garde sont nécessaires:

  1. Vous devriez toujours demander à l'utilisateur s'il est correct d'envoyer des informations de retour d'erreur.
  2. Vous devriez être prêt à échouer normalement s'il y a des erreurs de réseau. Ne laissez pas un échec lors du signalement d’un crash entraver la récupération!
  3. Vous devez éviter d'inclure les informations d'identification ou sensibles de l'utilisateur sauf si l'utilisateur le sait (voir n ° 1). Vous devez soit utiliser le protocole SSL, soit le protéger. Certaines juridictions vous imposent des charges que vous ne voudrez peut-être pas gérer. Il est donc préférable de ne pas enregistrer ces informations.
  4. Comme tout service Web, assurez-vous que votre service n'est pas exploitable par des scélérats.

Autres conseils

  

Je ne vois pas comment y parvenir sans inclure un nom d'utilisateur et un mot de passe pour le serveur smtp dans l'application ...

Vous n'avez besoin que d'un nom d'utilisateur et d'un mot de passe pour vous authentifier auprès d'un serveur smarthost. Vous n'en avez pas besoin pour envoyer du courrier directement, vous en avez besoin pour envoyer du courrier via un relais, par exemple. le serveur de messagerie de votre FAI. Il est parfaitement possible d'envoyer des emails sans authentification - c'est pourquoi il est si difficile d'arrêter le spam.

Ceci étant dit, certains fournisseurs d'accès à Internet bloquent le trafic sortant sur le port 25; l'alternative la plus robuste est donc une HTTP POST, qui ne risque probablement pas d'être bloquée par quoi que ce soit. Assurez-vous de choisir une URL qui ne vous semblera pas restreinte par la suite, ou mieux encore, demandez à l'application de vérifier régulièrement les mises à jour. Ainsi, si vous décidez de changer de domaine ou quelque chose, vous pouvez envoyer une mise à jour à l'avance.

La sécurité n'est pas vraiment un problème. Vous pouvez assez facilement supprimer les données indésirables, de sorte que tout ce qui vous préoccupe est de savoir si quelqu'un prendrait la peine de créer de faux retraits pour vous intercepter, et c'est une situation très improbable.

En ce qui concerne la charge utile, PyCrash peut vous aider.

Le hit sur le Web est la voie à suivre, mais assurez-vous de choisir une bonne URL - votre application la touchera pendant des années.

Que vous utilisiez SMTP ou HTTP pour envoyer les données, vous devez avoir un nom d'utilisateur / mot de passe dans l'application pour empêcher tout le monde de vous envoyer des données de manière aléatoire.

Dans cet esprit, je suppose qu'il serait plus facile d'utiliser SMTP plutôt que HTTP pour envoyer les données.

Un type de service Web simple suffirait. Vous devez tenir compte de la sécurité pour que personne ne puisse faire une demande à votre service.

À plus grande échelle, nous avons envisagé un système de messagerie JMS. Placez un objet sérialisé de données contenant le message traceback / error dans une file d'attente et utilisez-le toutes les x minutes pour générer des rapports / alertes à partir de ces données.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top