Passer au contenu principal
La commande logs apporte les journaux de votre application dans le terminal : suivez-les à mesure qu’ils arrivent, recherchez sur une plage de temps, et gérez les métriques dérivées des journaux et les déclencheurs basés sur les journaux qui en sont construits.

Options communes

Chaque commande logs identifie une application, et utilise votre organisation par défaut sauf si vous lui indiquez autrement :
OptionDescription
--app <name>Nom de l’application (ajoutez --environment quand plus d’une application partage le nom)
--environment <env>Environnement, utilisé avec --app
--app-id <id>L’ID de l’application (une longue chaîne hexadécimale provenant de appsignal-cli apps list), au lieu de --app et --environment
--org <slug>Slug de l’organisation (utilise votre valeur par défaut si omis)

Suivre les journaux

Diffusez les lignes de journal à mesure qu’elles arrivent (la CLI interroge toutes les secondes) :
Shell
appsignal-cli logs tail --app "MyApp" --environment production

Rechercher dans les journaux

Recherchez les lignes de journal passées et imprimez les correspondances. Par exemple, trouvez les lignes de niveau erreur récentes :
Shell
appsignal-cli logs search --app "MyApp" --environment production --query "severity:error"
Par défaut, search retourne jusqu’à 100 des correspondances les plus récentes. En plus des options et filtres communs, elle ajoute :
OptionDescription
--start <ISO8601>Heure de début, par exemple 2025-01-01T00:00:00Z
--end <ISO8601>Heure de fin
--limit <N>Nombre maximum de lignes à retourner (max 100, également la valeur par défaut)
--order <ORDER>ASC (plus anciennes d’abord) ou DESC (plus récentes d’abord, par défaut)
--page-allRécupérer chaque ligne correspondante dans la plage. Nécessite --start, et ignore --limit et --order
Pour extraire toutes les lignes d’une fenêtre au format JSON, pour un script ou un agent :
Shell
appsignal-cli --output json logs search --app "MyApp" --environment production \
  --start "2025-01-01T00:00:00Z" --query "severity:error" --page-all

Filtres

tail et search partagent ces filtres :
OptionDescription
--query <text>Filtre de requête de journal, utilisant la syntaxe de requête d’AppSignal
--severities <list>Sévérités séparées par des virgules, par exemple ERROR,CRITICAL
--source-ids <list>IDs de source séparés par des virgules
--view <name-or-id>Appliquer les filtres d’une vue de journal sauvegardée comme valeurs par défaut
Listez les vues disponibles pour une application avec appsignal-cli logs views, puis passez-en une à --view par nom ou ID. Tout autre filtre que vous ajoutez remplace les valeurs par défaut sauvegardées de la vue. Par exemple, appliquez une vue mais restreignez-la aux lignes critiques :
Shell
appsignal-cli logs search --app "MyApp" --environment production \
  --view "Production errors" --severities CRITICAL

Syntaxe de requête

L’option --query utilise la syntaxe de requête de journal d’AppSignal. Modèles courants :
  • severity=error : correspondance exacte de champ
  • message:timeout : le message contient « timeout »
  • group=notifiers : correspondance exacte de groupe
  • hostname:web-1 : le nom d’hôte contient « web-1 »
  • Les termes séparés par des espaces se combinent avec AND ; utilisez OR pour des alternatives
Les crochets ont une signification spéciale dans le parseur, alors entourez-les de guillemets pour correspondre littéralement : message:"[Email]".

Vues et sources sauvegardées

Listez les vues de journal sauvegardées (préréglages de filtres) et les sources de journal d’une application :
Shell
appsignal-cli logs views --app "MyApp" --environment production
appsignal-cli logs sources --app "MyApp" --environment production
Passez le nom ou l’ID d’une vue à --view, et l’ID d’une source à --source-ids.

Métriques dérivées des journaux

logs metrics transforme les lignes de journal correspondantes en métriques, avec list, create, update et 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 et update partagent ces options (create nécessite --name, --query et au moins une --metric) :
OptionDescription
--name <name>Nom de la configuration de métrique
--query <text>Requête correspondant aux lignes de journal à mesurer
--metric <def>Définition de métrique sous la forme key=value (répéter pour plusieurs), par exemple name=log.error_count,type=counter
--source-id <id>Restreindre à un ID de source (répéter pour plusieurs)
update peut prendre les options supplémentaires suivantes. Les options --clear-* vident les champs au lieu de les mettre à jour.
OptionDescription
--id <id>La métrique à mettre à jour, depuis logs metrics list (requis)
--clear-metricsSupprimer toutes les définitions de métriques
--clear-sourcesSupprimer toutes les restrictions de source
delete ne prend que --id.
Une métrique dérivée des journaux ne commence à collecter des données qu’une fois qu’elle est restreinte à une source de journal, alors passez --source-id (trouvez les IDs avec appsignal-cli logs sources). La CLI ne peut pas définir le filtre de sévérité d’une métrique ; si votre métrique en a besoin d’un, définissez le champ Severity dans l’interface utilisateur de l’application AppSignal après l’avoir créée.

Déclencheurs basés sur les journaux

logs triggers alerte sur les lignes de journal correspondantes, avec list, create, update et delete :
Shell
appsignal-cli logs triggers create --app "MyApp" --environment production \
  --name "Root login" \
  --query "message:root" \
  --severity ERROR \
  --notifier-id <NOTIFIER_ID>
create et update partagent ces options (create nécessite --name et --query) :
OptionDescription
--name <name>Nom du déclencheur
--query <text>Requête correspondant aux lignes de journal sur lesquelles alerter
--severity <level>Faire correspondre uniquement ces sévérités (répéter pour plusieurs)
--notifier-id <id>Attacher un notifier (répéter pour plusieurs)
--source-id <id>Restreindre à un ID de source (répéter pour plusieurs)
--description <text>Description du déclencheur
update peut prendre les options supplémentaires suivantes. Les options --clear-* vident les champs au lieu de les mettre à jour.
OptionDescription
--id <id>Le déclencheur à mettre à jour, depuis logs triggers list (requis)
--clear-descriptionSupprimer la description
--clear-notifiersSupprimer tous les notifiers
--clear-severitiesSupprimer toutes les sévérités
--clear-sourcesSupprimer toutes les restrictions de source
delete ne prend que --id.
Ce sont des déclencheurs basés sur les journaux, construits à partir des lignes de journal. Pour les déclencheurs de détection d’anomalies sur les métriques, voir Déclencheurs.

Prochaines étapes

Vous avez trouvé quelque chose dans les journaux ? Ouvrez les incidents associés, ou configurez des déclencheurs de détection d’anomalies.