Was wäre der beste Weg, um einen einfachen Crash- / Fehlermeldungsmechanismus zu implementieren?
Details: Meine App ist plattformübergreifend (mac / windows / linux) und in Python geschrieben , also brauche ich nur etwas, das mir eine kleine Menge Text, z. nur ein Zeitstempel und eine Traceback (die ich bereits generiere und in meinem Fehlerdialog zeige).
Es wäre in Ordnung, wenn es einfach eine E-Mail senden könnte, aber ich kann mir keinen Weg vorstellen, dies zu tun, ohne einen Benutzernamen und ein Passwort für den SMTP-Server in der Anwendung anzugeben ... Sollte ich auf der Serverseite einen einfachen Webservice implementieren und meine App eine HTTP-Anfrage mit der Info senden lassen? Irgendwelche besseren Ideen?
Danke!
Der Webservice ist der beste Weg, aber es gibt einige Vorbehalte:
Ich kann mir keinen Weg vorstellen, dies zu tun, ohne einen Benutzernamen und ein Passwort für den SMTP-Server in der Anwendung anzugeben ...
Sie brauchen nur einen Benutzernamen und ein Passwort, um sich mit einem Smarthost zu authentifizieren. Sie benötigen es nicht, um E-Mails direkt zu senden, Sie benötigen es, um E-Mails über ein Relay zu senden, z. Mailserver Ihres ISP. Es ist durchaus möglich, E-Mails ohne Authentifizierung zu senden - deshalb ist Spam so schwer zu stoppen.
Nachdem einige ISPs den ausgehenden Datenverkehr auf Port 25 blockiert haben, ist die stabilste Alternative ein HTTP-POST, der wahrscheinlich von nichts blockiert wird. Achten Sie darauf, eine URL auszuwählen, von der Sie sich zu einem späteren Zeitpunkt nicht eingeschränkt fühlen, oder noch besser: Lassen Sie die Anwendung regelmäßig nach Updates suchen. Wenn Sie also Domains ändern möchten, können Sie vorab eine Aktualisierung vornehmen.
>Sicherheit ist nicht wirklich ein Problem. Sie können ziemlich einfach Junk-Daten verwerfen, so dass alles, was Sie wirklich betrifft, ist, ob jemand sich die Mühe machen würde, gefälschte Trace-Backs zu erstellen, um sich mit Ihnen zu vermischen, und das ist eine sehr unwahrscheinliche Situation.
Wie für die Payload kann PyCrash Ihnen dabei helfen.
Unabhängig davon, ob Sie SMTP oder HTTP zum Senden der Daten verwenden, müssen Sie in der Anwendung einen Benutzernamen / ein Kennwort haben, um zu verhindern, dass jemand Ihnen zufällige Daten sendet.
Vor diesem Hintergrund vermute ich, dass es einfacher wäre, SMTP anstatt HTTP zu verwenden, um die Daten zu senden.
Eine Art einfacher Webservice würde ausreichen. Sie müssten Sicherheit in Betracht ziehen, so dass nicht nur jeder Anfragen an Ihren Dienst stellen könnte.
In größerem Umfang haben wir ein JMS-Messaging-System in Betracht gezogen. Setzen Sie ein serialisiertes Datenobjekt, das die Traceback- / Fehlermeldung enthält, in eine Warteschlange und verwenden Sie es alle x Minuten, um Berichte / Warnungen aus diesen Daten zu generieren.
Tags und Links python qa cross-platform error-reporting