Zum Inhalt springen

Fehler-Logs

Für den Plattformbetrieb. Diese Aufgaben betreffen die ganze Installation. Du brauchst je nach Aufgabe Serverzugriff oder Plattformrechte. Beginne mit dem Administrationshandbuch.

OpenBot schreibt eine Log-Zeile mit der Stufe Error, wenn auf dem Server etwas fehlschlägt. OpenBot schickt diese Logs nicht an andere Dienste. Das kannst du selbst mit einem Effect-Logger hinzufügen.


Quelle Wann
http Ein Request endet mit dem Status 500 oder höher.
turn Ein Turn endet mit dem Status Failed.
startup OpenBot startet nicht, zum Beispiel wegen einer falschen Konfiguration.

Normale Fehler bei Requests, wie 400, 401, 404 oder 409, werden nicht als Fehler protokolliert. Arbeit, die eine Person absichtlich unterbricht, wird auch nicht protokolliert.

Jedes Fehler-Log hat die Nachricht OpenBot operation failed und diese Annotationen. Eine Annotation ist ein benannter Wert, der an einer Log-Zeile hängt.

Annotation Bedeutung
source, operation Welcher Teil von OpenBot fehlgeschlagen ist.
errorType Ein kurzer Name für den Fehler, wenn OpenBot einen kennt.
requestId, method, route, status Für HTTP-Fehler. route ist das Muster der Route, nicht der echte Pfad.
chatId, turnId Für Fehler in einem Turn.

Das Log enthält auch die Ursache des Fehlers. Die Ursache kann Fehlermeldungen und andere private Daten enthalten.

Ein innerer Fehler, zum Beispiel ein Fehler der Datenbank, ist oft der Grund für einen 503. OpenBot schickt den inneren Fehler nicht an den Client. Es schreibt ihn zuerst in eine Log-Zeile mit der Stufe Warn, mit der Ursache und der Stelle im Code, an der er passiert ist. Jede Log-Zeile eines Requests hat dieselbe requestId wie das Fehler-Log dieses Requests. Damit findest du den Grund für einen fehlgeschlagenen Request.

Wenn ein Turn fehlschlägt, bekommt der Client nur eine kurze Nachricht. Ein Fehler des Modells, zum Beispiel eine Eingabe, die zu groß für das Modell ist, behält seine Nachricht und hat den Code model_error. Jeder andere Fehler, zum Beispiel ein Fehler der Datenbank, hat den Code internal_error und einen festen Text. Die ganze Ursache steht in einer Log-Zeile mit der Stufe Warn und der Nachricht A Turn failed. Sie hat dieselbe chatId und turnId wie das Fehler-Log.


OpenBot erledigt auch Arbeit im Hintergrund. Zum Beispiel löst es fällige Trigger aus, löscht alte Dateien, pausiert ungenutzte Computer, prüft Apps für den App Index und hört auf Änderungen an den Einstellungen. Es pausiert auch delegierte Arbeit an ihrem Zeitlimit, schickt Erinnerungen, schickt die Nachrichten von Channels und hört auf Aufrufe von seinen anderen Instanzen.

Wenn ein Durchlauf dieser Arbeit fehlschlägt, schreibt OpenBot eine Log-Zeile mit der Stufe Warn und der Ursache. Dann führt es die Arbeit zur nächsten Zeit wieder aus. Die Arbeit hört nicht auf. Diese Zeilen haben die Stufe Warn und nicht Error, weil die Arbeit weitergeht. Einige Schritte schlagen oft aus einem harmlosen Grund fehl, zum Beispiel bei einem Chat, an dem eine andere Instanz arbeitet. Der nächste Durchlauf macht sie noch einmal, darum haben ihre Zeilen die Stufe Debug.

Wenn der Server stoppt, hört auch die Arbeit im Hintergrund auf. Das wird nicht als Fehler protokolliert.


Für diese Entwicklungsaufgabe siehe Einen Fehler-Logger ergänzen.