Frage

Was wäre der beste Weg, um eine einfache Crash / Fehlerberichterstattung Mechanismus zu implementieren?

Details: my app sind Cross-Plattform (Mac / Windows / Linux) und geschrieben in Python , so brauche ich nur etwas, das mir eine kleine Menge an Text senden, z.B. nur einen Zeitstempel und eine Rückverfolgung (die ich bereits erzeugen und zeigen in meinem Fehlerdialog).

Es wäre schön, wenn es einfach eine E-Mail könnte, aber ich kann so nicht denken, dies zu tun, einen Benutzernamen und ein Passwort für den SMTP-Server in der Anwendung ohne einschließlich ... Soll ich einen einfachen Web-Service auf der Serverseite implementieren und habe meine app es eine HTTP-Anforderung mit der Info senden? Eine bessere Idee?

War es hilfreich?

Lösung

Der Web-Service ist der beste Weg, aber es gibt einige Einschränkungen:

  1. Sie sollten immer die Benutzer fragen, ob es in Ordnung ist, Fehler Feedback-Informationen zu senden.
  2. Sie sollten bereit sein, anmutig zu scheitern, wenn es Netzwerkfehler sind. Sie nicht einen Fehler lassen einen Absturz impede Erholung zu berichten!
  3. Sie sollten einschließlich Benutzer vermeiden Identifizierung oder sensible Informationen, es sei denn der Benutzer kennt (siehe # 1) und Sie sollten entweder SSL verwenden oder auf andere Weise zu schützen. In einigen Gerichtsbarkeiten verhängen Belastungen für Sie, dass Sie nicht behandeln möchten, so ist es am besten, einfach nicht solche Informationen zu speichern.
  4. Wie jeder Web-Service, stellen Sie sicher, dass Ihr Service von miscreants nicht verwertbar ist.

Andere Tipps

  

Ich kann nicht denken Sie an einen Weg, dies zu tun, einen Benutzernamen und ein Passwort für den SMTP-Server in der Anwendung ohne einschließlich ...

Sie müssen nur einen Benutzernamen und ein Passwort für sich selbst zu einem Smarthost zu authentifizieren. Sie brauchen es nicht Mail direkt zu senden, können Sie es benötigen Mail über ein Relais zu senden, z.B. Ihr ISP-Mail-Server. Es ist durchaus möglich, E-Mail ohne Authentifizierung zu senden -. Das ist, warum Spam ist so schwer zu stoppen

Having said that, einige ISPs blockieren ausgehenden Datenverkehr auf Port 25, so dass die stabilste Alternative ist ein HTTP-POST, was unwahrscheinlich ist durch nichts blockiert. Achten Sie darauf, eine URL auswählen, die Sie nicht durch später eingeschränkt fühlen, oder noch besser, hat die Anwendung in regelmäßigen Abständen nach Updates suchen, wenn Sie also entscheiden, Domänen oder etwas zu ändern, können Sie ein Update im Voraus drücken können.

Die Sicherheit ist nicht wirklich ein Problem. Sie können ziemlich leicht Junk-Daten verwerfen, so alles, was wirklich geht man ist, ob nicht jemand die Mühe des Aufbaus gefälschte Tracebacks zu Chaos mit Ihnen gehen würde, und das ist eine sehr unwahrscheinliche Situation.

Wie für die Nutzlast, PyCrash kann Ihnen dabei helfen.

Der Web-Hit ist der Weg zu gehen, aber stellen Sie sicher, dass Sie eine gute URL holen - Ihre App wird es für viele Jahre schlagen zu kommen.

Ob Sie SMTP verwenden oder HTTP, um die Daten zu senden, müssen Sie in der Anwendung einen Benutzername / Passwort haben nur jemanden senden Zufallsdaten zu Ihnen zu verhindern.

Mit dem im Verstand, vermute ich, es wäre einfacher, SMTP zu verwenden, anstatt HTTP, um die Daten zu senden.

Eine Art von einfachen Web-Service ausreichen würde. Sie müßten Sicherheit prüfen, so dass nicht nur jemand Anfragen an Ihren Service machen könnte ..

In einem größeren Maßstab als wir ein Messaging-System JMS. Setzen Sie ein serialisierte Objekt von Daten, die die Rückverfolgung / Fehlermeldung in eine Warteschlange, und verbrauchen sie alle x Minuten die Erstellung von Berichten / Warnungen aus diesen Daten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top