Zum Hauptinhalt springen
Der logs-Befehl bringt die Logs Ihrer Anwendung in das Terminal: verfolgen Sie sie, sobald sie eintreffen, durchsuchen Sie einen Zeitbereich und verwalten Sie die aus Logs abgeleiteten Metriken und log-basierten Triggers, die daraus erstellt werden.

Allgemeine Optionen

Jeder logs-Befehl identifiziert eine Anwendung und verwendet Ihre Standard-Organisation, sofern Sie es ihm nicht anders mitteilen:
FlagBeschreibung
--app <name>Anwendungsname (fügen Sie --environment hinzu, wenn mehr als eine App den Namen teilt)
--environment <env>Umgebung, wird mit --app verwendet
--app-id <id>Die ID der App (eine lange hexadezimale Zeichenkette aus appsignal-cli apps list), anstelle von --app und --environment
--org <slug>Organisations-Slug (verwendet Ihren Standard, wenn weggelassen)

Logs verfolgen

Streamen Sie Log-Zeilen, sobald sie eintreffen (die CLI fragt jede Sekunde ab):
Shell
appsignal-cli logs tail --app "MyApp" --environment production

Logs durchsuchen

Durchsuchen Sie vergangene Log-Zeilen und drucken Sie die Treffer. Zum Beispiel, finden Sie aktuelle Zeilen auf Fehler-Level:
Shell
appsignal-cli logs search --app "MyApp" --environment production --query "severity:error"
Standardmäßig gibt search bis zu 100 der jüngsten Treffer zurück. Zusätzlich zu den allgemeinen Optionen und Filtern bietet er:
FlagBeschreibung
--start <ISO8601>Startzeit, z. B. 2025-01-01T00:00:00Z
--end <ISO8601>Endzeit
--limit <N>Maximale zurückzugebende Zeilen (max. 100, auch der Standard)
--order <ORDER>ASC (älteste zuerst) oder DESC (neueste zuerst, der Standard)
--page-allJede passende Zeile im Bereich abrufen. Erfordert --start und ignoriert --limit und --order
Um jede Zeile in einem Fenster als JSON abzurufen, für ein Skript oder einen Agent:
Shell
appsignal-cli --output json logs search --app "MyApp" --environment production \
  --start "2025-01-01T00:00:00Z" --query "severity:error" --page-all

Filter

tail und search teilen sich diese Filter:
FlagBeschreibung
--query <text>Log-Abfragefilter unter Verwendung von AppSignals Query-Syntax
--severities <list>Kommagetrennte Severities, z. B. ERROR,CRITICAL
--source-ids <list>Kommagetrennte Source-IDs
--view <name-or-id>Wendet die Filter eines gespeicherten Log Views als Standardwerte an
Listen Sie die für eine App verfügbaren Views mit appsignal-cli logs views auf und übergeben Sie dann einen an --view per Name oder ID. Alle anderen Filter, die Sie hinzufügen, überschreiben die gespeicherten Standardwerte des Views. Zum Beispiel, wenden Sie einen View an, grenzen ihn aber auf kritische Zeilen ein:
Shell
appsignal-cli logs search --app "MyApp" --environment production \
  --view "Production errors" --severities CRITICAL

Query-Syntax

Das Flag --query verwendet AppSignals Log-Query-Syntax. Häufige Muster:
  • severity=error: exakte Feldübereinstimmung
  • message:timeout: Nachricht enthält “timeout”
  • group=notifiers: exakte Gruppenübereinstimmung
  • hostname:web-1: Hostname enthält “web-1”
  • Leerzeichengetrennte Begriffe werden mit AND kombiniert; verwenden Sie OR für Alternativen
Eckige Klammern haben im Parser eine besondere Bedeutung, also setzen Sie sie in Anführungszeichen, um sie wörtlich abzugleichen: message:"[Email]".

Gespeicherte Views und Sources

Listen Sie die gespeicherten Log Views (Filter-Voreinstellungen) und die Log Sources einer App auf:
Shell
appsignal-cli logs views --app "MyApp" --environment production
appsignal-cli logs sources --app "MyApp" --environment production
Übergeben Sie den Namen oder die ID eines Views an --view und die ID einer Source an --source-ids.

Aus Logs abgeleitete Metriken

logs metrics verwandelt passende Log-Zeilen in Metriken, mit list, create, update und delete:
Shell
appsignal-cli logs metrics create --app "MyApp" --environment production \
  --name "Checkout latency" \
  --query "group:checkout" \
  --metric "name=log.checkout_duration_ms,type=distribution,field=duration_ms" \
  --source-id <SOURCE_ID>
create und update teilen sich diese Flags (create erfordert --name, --query und mindestens ein --metric):
FlagBeschreibung
--name <name>Name der Metrikkonfiguration
--query <text>Query, die die zu messenden Log-Zeilen abgleicht
--metric <def>Metrikdefinition in key=value-Form (wiederholen für mehrere), z. B. name=log.error_count,type=counter
--source-id <id>Auf eine Source-ID eingrenzen (wiederholen für mehr)
update kann die folgenden zusätzlichen Flags annehmen. Die --clear-*-Flags leeren Felder, anstatt sie zu aktualisieren.
FlagBeschreibung
--id <id>Die zu aktualisierende Metrik, aus logs metrics list (erforderlich)
--clear-metricsAlle Metrikdefinitionen entfernen
--clear-sourcesAlle Source-Eingrenzungen entfernen
delete nimmt nur --id.
Eine aus Logs abgeleitete Metrik beginnt erst dann mit der Datenerfassung, wenn sie auf eine Log-Source eingegrenzt ist, also übergeben Sie --source-id (finden Sie IDs mit appsignal-cli logs sources). Die CLI kann den Severity-Filter einer Metrik nicht setzen; wenn Ihre Metrik einen benötigt, setzen Sie das Severity-Feld in der AppSignal-App-UI nach dem Erstellen.

Log-basierte Triggers

logs triggers alarmiert bei passenden Log-Zeilen, mit list, create, update und delete:
Shell
appsignal-cli logs triggers create --app "MyApp" --environment production \
  --name "Root login" \
  --query "message:root" \
  --severity ERROR \
  --notifier-id <NOTIFIER_ID>
create und update teilen sich diese Flags (create erfordert --name und --query):
FlagBeschreibung
--name <name>Trigger-Name
--query <text>Query, die die zu alarmierenden Log-Zeilen abgleicht
--severity <level>Nur diese Severities abgleichen (wiederholen für mehr)
--notifier-id <id>Einen Notifier anhängen (wiederholen für mehr)
--source-id <id>Auf eine Source-ID eingrenzen (wiederholen für mehr)
--description <text>Trigger-Beschreibung
update kann die folgenden zusätzlichen Flags annehmen. Die --clear-*-Flags leeren Felder, anstatt sie zu aktualisieren.
FlagBeschreibung
--id <id>Der zu aktualisierende Trigger, aus logs triggers list (erforderlich)
--clear-descriptionDie Beschreibung entfernen
--clear-notifiersAlle Notifiers entfernen
--clear-severitiesAlle Severities entfernen
--clear-sourcesAlle Source-Eingrenzungen entfernen
delete nimmt nur --id.
Dies sind log-basierte Triggers, die aus Log-Zeilen erstellt werden. Für Anomaly-Detection-Triggers auf Metriken siehe Triggers.

Nächste Schritte

Etwas in den Logs gefunden? Öffnen Sie die zugehörigen Incidents oder richten Sie Anomaly-Detection-Triggers ein.