Speichern Django von Log-Meldungen in eine Datenbank?
Django (python web framework) verwendet das python-logging-system zum speichern von Protokollen.
Gibt es eine einfache Möglichkeit zum speichern von log-Meldungen in eine Datenbank, und dann lassen Sie den admin-Benutzer zu suchen, die über Ihnen über das web? Es ist die Art von Sache, die ich schreiben konnte mich aber keinen Sinn das Rad neu erfinden möchte. Ich will nicht zu melden Ausnahmen, aber info/debug/notice Nachrichten, dass ich zum code Hinzugefügt.
Im Idealfall würde ich mag in der Lage sein, um Metadaten zu speichern, über die log-Meldung, wie Sie es getan hat (wie die remote-IP-Adresse, user-agent, wsgi-Prozess-id, etc.), und dann filtern /durchsuchen, die auf dieser Grundlage (D. H. zeige mir alle log-Nachrichten von diesen IP-Adresse in den letzten 24 Stunden). Hat jemand dies getan?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie einfach Sentry. Raven, die Django-Stück von der Funktionalität Haken in die logging-framework, so dass zusätzlich zum sammeln von Fehler in der app, alle benutzerdefinierten log-Meldungen sollten zeigen, wie gut.
Abgesehen von den offensichtlichen Wahl von Sentry, für die aus Gründen der übung, gibt es einen schönen blog-Artikel mit dem Titel "Erstellen von benutzerdefinierten Protokoll-handler, der die logs in der Datenbank-Modelle in django" in der "James Lin-Blog", in dem kurz erklärt, wie Sie dies tun, indem eine zweite Datenbank mit code-Beispielen.
Der code ist angelehnt an das standard-Python-RotatingFileHandler:
Könnte dies auch leicht angepasst werden für die Verwendung einer einzigen db.
überprüfen django-db-logger
dauert es weniger als eine minute zu integrieren
https://github.com/CiCiUi/django-db-logger
versuchen django-Anfragen. Ich habe es versucht und es im Grunde nur stellt den Antrag die Protokolle in einer Tabelle namens-Anfragen.