Skip to main content
Ce guide explique comment capturer les journaux de conteneur d’une sandbox en cours d’exécution afin de surveiller le processus principal et de déboguer les échecs. Récupérez les journaux avant d’arrêter la sandbox. Les journaux de conteneur correspondent aux flux stdout et stderr du processus principal d’une sandbox. Diffusez-les en continu avec stream_logs(), qui capture la sortie de la commande passée à Sandbox.run(). La sortie des commandes exec() n’est pas incluse : utilisez pour cela Process.stdout ou Process.stderr. stream_logs() renvoie un StreamReader qui génère des lignes de journal. Vous pouvez le parcourir de manière synchrone ou asynchrone.
Lorsque vous appelez Sandbox.run() sans commande, la commande par défaut de la sandbox n’écrit ni dans stdout ni dans stderr : stream_logs() ne renvoie donc aucune sortie. Passez une commande qui écrit dans stdout ou stderr.

Choisir l’authentification

Ces exemples s’exécutent sur une capacité sans serveur, sauf si une section indique CKS. Choisissez l’identifiant d’authentification du compte propriétaire de vos Sandbox. Consultez Choisir et obtenir des identifiants d’authentification pour obtenir une clé ou un jeton. Exécutez les commandes d’installation dans un environnement virtuel Python actif. Enregistrez le code Python de l’onglet correspondant à votre identifiant d’authentification sous le nom sandbox_auth.py, à côté des scripts Python que vous exécutez depuis cette page. Ce fichier enregistre le mode d’authentification choisi, et non votre identifiant d’authentification. Les exemples importent AUTH depuis ce fichier et le transmettent explicitement à chaque nouvelle Sandbox ou session.
Utilisez votre clé API Forge via la stratégie d’authentification W&B du SDK :
sandbox_auth.py
Pour un placement sur CKS, choisissez le jeton CoreWeave, activez un exécuteur et définissez placement_mode="cks" lors de la création de la Sandbox ou dans SandboxDefaults. Créer une session avec auth=AUTH authentifie également les Sandbox qui lui appartiennent. Utilisez le même identifiant d’authentification pour vous reconnecter à vos Sandbox, les lister ou les nettoyer.

Récupérer les journaux récents

Utilisez tail_lines pour récupérer les dernières lignes du journal sans diffuser en continu l’intégralité de l’historique. C’est pratique pour inspecter rapidement une sandbox en cours d’exécution.

Mode suivi

Diffusez les journaux en continu, comme avec tail -f. L’itérateur reste bloquant jusqu’à l’arrivée de nouvelles données.
En mode suivi, appuyez sur Ctrl+C pour arrêter l’itération.

Filtrer par date

Passez since_time pour récupérer uniquement les journaux postérieurs à un horodatage donné. Vous limitez ainsi la sortie à la fenêtre qui vous intéresse, par exemple les journaux générés depuis un déploiement ou un incident.

Horodatages

Définissez timestamps=True pour préfixer chaque ligne d’un horodatage ISO 8601 fourni par le serveur. Les horodatages côté serveur permettent de corréler les événements de la sandbox avec ceux d’autres systèmes.

Itération asynchrone

Si votre application utilise asyncio, parcourez le même StreamReader avec async for pour ne pas bloquer la boucle d’événements.

Récupérer les journaux avant l’arrêt

La récupération des journaux n’est possible que si la sandbox est en cours d’exécution. Récupérez les journaux dont vous avez besoin avant de l’arrêter. Une fois la sandbox arrêtée, le SDK Python comme la CLI refusent toute récupération des journaux.

Voir aussi

Dernière modification le 27 octobre 2026