> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appsignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# JSON-Log-Formatierung

<Warning>
  🔐 Senden Sie keine <strong>personenbezogenen Daten (Personal Identifiable Information, PII)</strong> an AppSignal. Filtern Sie PII (z. B. Namen, E-Mail-Adressen) aus Logs und verwenden Sie stattdessen eine ID, einen Hash oder einen pseudonymisierten Bezeichner. <br /> <br /> Für **HIPAA-pflichtige Stellen** finden Sie weitere Informationen zum Abschluss eines Business Associate Agreement (BAA) in unserer [Business Add-Ons-Dokumentation](/support/business-add-ons).
</Warning>

Diese Dokumentation erklärt, wie AppSignal in JSON formatierte Log-Nachrichten unterstützt.

## 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.

<CodeGroup>
  ```json JSON theme={null}
  {
    "timestamp": "2022-06-02T04:17:25.783Z",
    "group": "organisations",
    "severity": "warn",
    "hostname": "frontend1",
    "message": "This is a test message",
    "org": "appsignal",
    "step": 1,
    "seen_terms": true,
    "entries": 10.01,
    "user": { "id": 1, "remote_id": "123" }
  }
  ```
</CodeGroup>

#### 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.

| Attribute Key | Type     |
| ------------- | -------- |
| group         | String   |
| severity      | Severity |
| hostname      | String   |
| message       | String   |

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:

| Attribute Key   | Type   | Value       |
| --------------- | ------ | ----------- |
| org             | String | "appsignal" |
| step            | Int    | 1           |
| seen\_terms     | Bool   | true        |
| entries         | Double | 10.01       |
| user.id         | Int    | 1           |
| user.remote\_id | String | "123"       |

## Formatierungsregeln

<Note>
  Schlüssel müssen alphanumerische Zeichenketten sein. Array-Werte werden nicht unterstützt.
</Note>

**Verhalten von Schlüsseln:**

* Wenn ein Schlüssel-Wert-Paar einen Schlüssel mit dem Namen `msg` oder `message` hat, 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

**Verhalten von Werten:**

* 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" }`)

Bei verschachtelten Objekten werden die Attribute geflacht und mit einem `.`-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.
