JSON
Wenn Sie JSON als Ihr Log-Format angeben, parst AppSignal die eingehende Log-message als Schlüssel-Wert-Paare. Jedes Schlüssel-Wert-Paar wird als Attribut auf der Log-Zeile gespeichert, sodass Sie nach bestimmten Log-Zeilen anhand ihrer Attribute filtern und suchen können.
Beispiele
Das folgende Beispiel zeigt, wie AppSignal eine Log-message im JSON-Format parst.
Message
Das obige JSON wird mit der Nachricht"this is a test message" geparst.
Sie können entweder den Schlüssel msg oder message verwenden, um die Nachricht zu überschreiben.
Wenn kein msg- oder message-Schlüssel verfügbar ist, wird die gesamte Log-Zeile als Nachricht verwendet.
Überschreibungen
Die Log-Attribute der Plattform oder Integration (wie hostname, timestamp und group, die z. B. von der Heroku-Plattform gesetzt werden) können mit den Werten aus der JSON-Nachricht überschrieben werden.
Die
severity kann einen der folgenden Werte enthalten: unknown, trace, debug, info, notice, warn, error, critical, alert und fatal.
Dies ist eine hervorragende Möglichkeit, die Severity Ihrer Log-Zeilen aus Ihrer Anwendung heraus zu steuern, unabhängig von der (in der Regel auf info voreingestellten) Severity, die von der Plattform oder Integration gesetzt wurde.
Attribute
Jedes andere Schlüssel/Wert-Paar wird als durchsuchbares Attribut hinzugefügt:Formatierungsregeln
Schlüssel müssen alphanumerische Zeichenketten sein. Array-Werte werden nicht unterstützt.
- Wenn ein Schlüssel-Wert-Paar einen Schlüssel mit dem Namen
msgodermessagehat, wird der Wert dieses Schlüssels als Log-Nachricht geparst. - Wenn kein message-/msg-Schlüssel verfügbar ist, wird die gesamte Log-Zeile als Nachricht betrachtet.
- Schlüssel müssen alphanumerisch sein.
- Schlüssel dürfen keine Leerzeichen enthalten, dürfen aber Punkte (
.), Unterstriche (_) und Bindestriche (-) enthalten. - Schlüssel dürfen nicht mehr als 50 Zeichen enthalten
- Werte dürfen nicht länger als 255 Zeichen sein
- Nicht mehr als 25 Attribute pro Log-Nachricht.
- Werte dürfen verschachtelte Objekte enthalten, aber keine Arrays.
- Werte dürfen einen der folgenden Typen haben:
- String
- Integer (z. B.
10) - Double (z. B.
10.01) - Boolean (
true/false) - Object (z. B.
{ "foo": "bar" })
.-Zeichen getrennt.
Schlüssel-Wert-Paare, die diesen Regeln nicht entsprechen, werden an die Nachricht eines Logs angehängt, sofern kein message- oder msg-Schlüssel angegeben ist.