> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Journalisation des sandboxes

> Diffusez en continu les journaux de conteneur (stdout et stderr) du processus principal d’une sandbox avec stream_logs().

Ces exemples utilisent un jeton d’accès à l’API CoreWeave défini dans `CWSANDBOX_API_KEY`. Pour l’authentification par clé API Forge, consultez [Premiers pas](/fr/products/sandboxes/get-started). Pour les exigences relatives à CKS, consultez [Modes de placement](/fr/products/sandboxes/placement).

Ce guide explique comment capturer les journaux de conteneur d’une sandbox afin de surveiller l’activité de votre processus principal, de déboguer des échecs ou d’inspecter la sortie une fois la sandbox arrêtée.

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.

<Note>
  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.
</Note>

<h2 id="retrieve-recent-logs">
  Récupérer les journaux récents
</h2>

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.

```python theme={"system"}
for line in sandbox.stream_logs(tail_lines=100):
    print(line, end="")
```

<h2 id="follow-mode">
  Mode suivi
</h2>

Diffusez les journaux en continu, comme avec `tail -f`. L’itérateur reste bloquant jusqu’à l’arrivée de nouvelles données.

```python theme={"system"}
for line in sandbox.stream_logs(follow=True):
    print(line, end="")
```

En mode suivi, appuyez sur `Ctrl+C` pour arrêter l’itération.

<h2 id="filter-by-time">
  Filtrer par date
</h2>

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.

```python theme={"system"}
from datetime import datetime, timezone

since = datetime(2026, 2, 20, 14, 0, 0, tzinfo=timezone.utc)
for line in sandbox.stream_logs(since_time=since):
    print(line, end="")
```

<h2 id="timestamps">
  Horodatages
</h2>

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.

```python theme={"system"}
for line in sandbox.stream_logs(tail_lines=10, timestamps=True):
    print(line, end="")
# Sortie : 2026-02-20T14:30:00Z une ligne de journal
```

<h2 id="async-iteration">
  Itération asynchrone
</h2>

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

```python theme={"system"}
async for line in sandbox.stream_logs(follow=True):
    print(line, end="")
```

<h2 id="retrieve-logs-from-stopped-sandboxes">
  Récupérer les journaux des sandboxes arrêtées
</h2>

Les journaux restent disponibles après l’arrêt d’une sandbox, ce qui vous permet d’analyser les échecs ou de consulter la sortie des tâches terminées. Récupérez l’historique des journaux des sandboxes terminées, en échec ou interrompues :

```python theme={"system"}
sb = Sandbox.from_id("sbx-abc123").result()
for line in sb.stream_logs(tail_lines=50):
    print(line, end="")
```

Les sandboxes arrêtées ne prennent en charge que `follow=False` (valeur par défaut).

<h2 id="see-also">
  Voir aussi
</h2>

* [Exécution de commandes](/fr/products/sandboxes/client/guides/execution) : exécuter des commandes et diffuser leur sortie en continu avec `exec()`
* [Synchrone ou asynchrone](/fr/products/sandboxes/client/guides/sync-vs-async) : modèles d’itération
