Docs/ Opérations/ Journaux

Journaux

Les journaux d'exécution viennent directement du conteneur de l'application ; les journaux de construction sont conservés avec chaque déploiement. Aucun des deux n'est une archive.

Journaux d'exécution dans le tableau de bord

L'onglet Journaux d'une application diffuse ce que le conteneur écrit sur la sortie standard et la sortie d'erreur. Il s'ouvre sur les 100 dernières lignes et suit les nouvelles en direct ; la visionneuse garde les 1 000 dernières lignes.

  • Rechercher dans les journaux et Filtrer les journaux... restreignent les lignes affichées, avec le nombre de correspondances.
  • Pause fige l'affichage pendant que les lignes continuent d'arriver dans un tampon ; Reprendre les réintègre.
  • Afficher/masquer les horodatages montre ou cache l'heure enregistrée par Docker pour chaque ligne.
  • Copier les journaux et Télécharger les journaux prennent les lignes présentes dans la visionneuse (un fichier .txt) ; Effacer les journaux ne vide que la visionneuse.
  • Pour une application composée de plusieurs services, un sélecteur choisit le conteneur à lire ; par défaut, c'est le Conteneur principal.

Le flux est un WebSocket sur /api/v1/apps/<id>/logs, avec les paramètres facultatifs tail (10 000 lignes au plus), follow et service ; une simple requête HTTP y est refusée.

En ligne de commande

sh0 logs <app> affiche les 50 dernières lignes puis rend la main ; --tail N change ce nombre (sortie réelle) :

Terminal
$ sh0 logs my-api --tail 3
[*] Connecting to logs for my-api...
2026-10-02T03:07:16.015Z GET /
2026-10-02T03:07:16.070Z GET /health
2026-10-02T03:07:16.123Z GET /api/items

-f / --follow garde le flux ouvert et affiche les nouvelles lignes au fil de l'eau, jusqu'à Ctrl+C.

Journaux de construction

Chaque déploiement garde son propre journal de construction et de déploiement : ouvrez-le depuis l'onglet Déploiements de l'application. sh0 push et sh0 deploy --wait affichent la progression du déploiement qu'ils lancent. Les journaux de construction sont conservés dans la base de sh0 avec le déploiement et ne sont pas purgés automatiquement.

Ce qui est conservé, et combien de temps

sh0 ne garde aucune copie des journaux d'exécution. Ils vivent dans les fichiers de journal Docker du conteneur, avec les limites que sh0 pose à la création du conteneur :

JournalConservation
Sortie d'exécution d'un conteneurPilote Docker json-file, rotation à 10 Mo, 3 fichiers : environ 30 Mo au plus par conteneur, les lignes les plus anciennes partant en premier
Après un redéploiementLe conteneur précédent est supprimé, et ses journaux avec lui : la visionneuse repart du nouveau conteneur
Journal de construction et de déploiementAvec la fiche du déploiement, jusqu'à la suppression de l'application
Exécutions des tâches planifiéesVoir Tâches cron : l'historique des exécutions est purgé par tâche
Terminal
$ docker inspect <container> --format '{{json .HostConfig.LogConfig}}'
{"Type":"json-file","Config":{"max-file":"3","max-size":"10m"}}
Note
La limite de 10 Mo × 3 s'applique aux conteneurs créés par sh0 avec ce réglage ; un conteneur créé par une version antérieure garde les limites de sa création jusqu'à ce qu'il soit recréé. Vérifiez avec docker inspect comme ci-dessus (sortie réelle).

Conserver les journaux plus longtemps

sh0 v1.10.2 n'a ni export de journaux, ni réglage de rétention, ni renvoi des journaux vers un service externe. Pour un historique qui dépasse la fenêtre de rotation ou survit aux déploiements, faites envoyer les journaux par l'application à un service externe (service de journalisation, serveur syslog, votre propre collecteur), ou faites tourner sur l'hôte un collecteur qui lit les fichiers de journal de Docker.