Logs

Accédez aux logs de build et d'exécution pour chaque service. Diffusez les logs en temps réel, filtrez par sévérité, recherchez des schémas spécifiques et téléchargez les logs pour une analyse hors ligne.

Logs de build vs logs d'exécution

sh0 capture deux types distincts de logs pour chaque service. Comprendre la différence vous aide à trouver rapidement l'information dont vous avez besoin.

Logs de build

Les logs de build capturent tout ce qui se passe pendant le processus de construction de l'image. Cela inclut l'exécution des couches Dockerfile, l'installation des dépendances, la sortie de compilation et les erreurs de build.

Les logs de build sont accessibles depuis l'onglet Déploiements. Chaque déploiement a son propre log de build.

Build log viewer -- showing Docker build output with layer caching indicators, step numbers, and timestamps

Éléments courants à rechercher dans les logs de build :

  • Erreurs de dépendances -- Échec de npm install, pip install ou résolution de paquets.
  • Erreurs de compilation -- Échecs de compilation TypeScript, Rust, Go ou autres.
  • Hits de cache -- Couches marquées « CACHED » qui accélèrent le build.
  • Taille de l'image -- La taille finale de l'image est affichée à la fin du build.
Example build log output
Step 1/8 : FROM node:20-alpine
 ---> 2d8f48ba52c1
Step 2/8 : WORKDIR /app
 ---> Using cache
 ---> 8a3d2e1f5b7c
Step 3/8 : COPY package*.json ./
 ---> Using cache
 ---> 4f2a1b3c8d9e
Step 4/8 : RUN npm ci --production
 ---> Running in 7e6d5c4b3a2f
added 847 packages in 12.3s
Step 5/8 : COPY . .
 ---> 1a2b3c4d5e6f
Step 6/8 : RUN npm run build
 ---> Running in 9f8e7d6c5b4a
Build completed successfully
Step 7/8 : EXPOSE 3000
Step 8/8 : CMD ["node", "dist/server.js"]
Successfully built a1b2c3d4e5f6

Logs d'exécution

Les logs d'exécution capturent la sortie de votre application en cours d'exécution -- tout ce que votre processus écrit sur stdout et stderr. Cela inclut les logs de requêtes HTTP, les erreurs applicatives, les messages de débogage et toute autre sortie.

Accédez aux logs d'exécution depuis l'onglet Logs sur la page de détail du service.

Runtime log viewer -- showing timestamped log entries with color-coded severity levels (info, warn, error)

Diffusion de logs en temps réel

La visionneuse de logs diffuse les logs en temps réel via des connexions WebSocket. Les nouvelles entrées de log apparaissent instantanément en bas de la visionneuse au fur et à mesure qu'elles sont produites par votre application.

  • Défilement automatique -- La visionneuse défile automatiquement pour montrer les dernières entrées. Faites défiler vers le haut pour mettre en pause le défilement automatique et inspecter les entrées plus anciennes.
  • Pause / Reprise -- Cliquez sur le bouton Pause pour arrêter temporairement le flux. Les logs sont mis en tampon et apparaissent lorsque vous reprenez.
  • Format d'horodatage -- Chaque ligne est préfixée d'un horodatage. Cliquez sur le bouton de format d'horodatage pour basculer entre relatif (« il y a 2s ») et absolu (« 2026-03-21 14:30:05 »).
Log streaming controls -- showing pause/resume button, auto-scroll indicator, and timestamp format toggle
Note
Si votre service a plusieurs réplicas, la visionneuse de logs fusionne les logs de tous les conteneurs en un seul flux. Chaque entrée est étiquetée avec l'ID du conteneur pour que vous puissiez distinguer les réplicas.

Filtrage des logs

Filtrez les logs pour vous concentrer sur l'essentiel. sh0 fournit plusieurs options de filtrage :

  • Plage temporelle -- Voir les logs des 15 dernières minutes, 1 heure, 6 heures, 24 heures, ou une plage de dates personnalisée.
  • Conteneur -- Lorsqu'un service a plusieurs réplicas, filtrez par instance de conteneur spécifique.
  • Flux -- Afficher uniquement stdout, uniquement stderr, ou les deux.
  • Sévérité -- Si votre application utilise la journalisation structurée, filtrez par niveau de sévérité (debug, info, warn, error).
Log filter bar -- showing time range dropdown, container selector, stream toggle (stdout/stderr), and severity dropdown
Tip
Filtrer par stderr est un moyen rapide de voir uniquement la sortie d'erreur. La plupart des applications écrivent la sortie normale sur stdout et les erreurs sur stderr.

Recherche dans les logs

Utilisez la barre de recherche pour trouver des entrées spécifiques dans le flux de logs. La recherche prend en charge la correspondance de texte brut et les expressions régulières de base.

  1. Cliquez sur l'icône de recherche ou appuyez sur Ctrl + F (ou Cmd + F sur macOS).
  2. Tapez votre requête de recherche.
  3. Les entrées correspondantes sont surlignées dans la visionneuse de logs.
  4. Utilisez les flèches haut/bas dans la barre de recherche pour naviguer entre les correspondances.
Search examples
# Find all error messages
ERROR

# Find a specific user ID
user_id=12345

# Find requests to a specific endpoint
POST /api/users

# Find slow requests (regex)
took [0-9]{4,}ms

Téléchargement des logs

Téléchargez les logs pour une analyse hors ligne, l'archivage ou le partage avec votre équipe. Cliquez sur le bouton Télécharger dans la visionneuse de logs pour exporter les logs actuellement visibles.

  • Texte brut (.log) -- Sortie de log brute avec horodatages, prête pour grep, awk ou tout outil de traitement de texte.
  • JSON (.json) -- Format structuré avec horodatage, ID du conteneur, flux (stdout/stderr) et champs de message.
JSON log export format
{
  "timestamp": "2026-03-21T14:30:05.123Z",
  "container": "my-api-1",
  "stream": "stdout",
  "message": "GET /health 200 2ms"
}
Note
Les logs téléchargés respectent les filtres actifs et la plage temporelle. Pour télécharger tous les logs disponibles, effacez tous les filtres et définissez la plage temporelle au maximum avant l'export.

Rétention des logs

sh0 conserve les logs selon votre configuration. Les paramètres de rétention par défaut équilibrent l'utilisation du stockage et les besoins de débogage :

Type de logRétention par défautConfigurable
Logs de build20 derniers buildsOui
Logs d'exécution7 joursOui (1-90 jours)
Logs de tâches cron100 dernières exécutionsOui

Pour ajuster les paramètres de rétention, accédez à Paramètres → Logs et mettez à jour les valeurs de rétention. Réduire la rétention économise de l'espace disque sur le serveur.

Tip
Pour les applications qui produisent un volume élevé de logs, envisagez de réduire la rétention à 3 jours et d'utiliser la fonction de téléchargement pour archiver les logs importants. Vous pouvez également configurer votre application pour réduire la verbosité des logs en production.
Log retention settings -- showing retention period inputs for build logs, runtime logs, and cron job logs