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) :
$ 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 :
| Journal | Conservation |
|---|---|
| Sortie d'exécution d'un conteneur | Pilote 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éploiement | Le conteneur précédent est supprimé, et ses journaux avec lui : la visionneuse repart du nouveau conteneur |
| Journal de construction et de déploiement | Avec la fiche du déploiement, jusqu'à la suppression de l'application |
| Exécutions des tâches planifiées | Voir Tâches cron : l'historique des exécutions est purgé par tâche |
$ docker inspect <container> --format '{{json .HostConfig.LogConfig}}'
{"Type":"json-file","Config":{"max-file":"3","max-size":"10m"}}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.