# Logs de un worker

> Muestra el historial de ejecuciones de un worker o lo sigue en tiempo real.

Fuente: https://developers.plazbot.com/cli/workers/logs/

### Logs de un worker

Muestra las últimas ejecuciones de un worker (las más recientes primero) con su estado, duración, origen y error. Con `--follow` se queda escuchando y muestra las ejecuciones nuevas a medida que ocurren.

```bash
plazbot workers logs <nombre> [options]
```

### Parámetros

| Parámetro | Flag | Requerido | Descripción |
|-----------|------|-----------|-------------|
| Nombre | `<nombre>` | Sí | Nombre del worker. |
| Límite | `-l, --limit <number>` | No | Cantidad de ejecuciones a mostrar, de 1 a 1000. Por defecto `20`. |
| Estado | `-s, --status <status>` | No | Filtra por estado: `success`, `error`, `timeout`. |
| Seguir | `-f, --follow` | No | Consulta cada 3 segundos e imprime las ejecuciones nuevas. Se detiene con Ctrl+C (código de salida 0). |
| JSON | `--json` | No | Imprime los logs como JSON, con el mensaje de error completo. |

### Ejemplos

```bash
# Últimas 20 ejecuciones
plazbot workers logs get-stock

# Últimas 100 ejecuciones con error
plazbot workers logs get-stock -l 100 -s error

# Seguir las ejecuciones en tiempo real
plazbot workers logs get-stock --follow

# Logs en JSON con los errores completos
plazbot workers logs get-stock --json
```

### Resultado

```text
Logs for "get-stock" (3)
────────────────────────────────────────
┌───────────────────────┬─────────┬──────────┬──────────────┬──────────────────────────────────────────┐
│ Date                  │ Status  │ Duration │ Source       │ Error                                    │
├───────────────────────┼─────────┼──────────┼──────────────┼──────────────────────────────────────────┤
│ Oct 6, 2026, 03:12 PM │ ok      │ 245ms    │ tool_calling │ —                                        │
├───────────────────────┼─────────┼──────────┼──────────────┼──────────────────────────────────────────┤
│ Oct 6, 2026, 03:10 PM │ error   │ 102ms    │ cli-test     │ INVENTORY_API_KEY is not configured i... │
├───────────────────────┼─────────┼──────────┼──────────────┼──────────────────────────────────────────┤
│ Oct 6, 2026, 08:00 AM │ timeout │ 10000ms  │ scheduler    │ —                                        │
└───────────────────────┴─────────┴──────────┴──────────────┴──────────────────────────────────────────┘

Successful: 1
Errors: 1
Timeouts: 1
Average duration: 3449ms
Errors are truncated; use --json to see the full message.
```

- Status muestra `ok` (éxito), `error` o `timeout`.
- Source es el origen de la ejecución: `tool_calling` (agente IA), `action` (acción de una automatización o agente), `scheduler` (cron), `webhook` o `cli-test` ([`plazbot workers test`](https://developers.plazbot.com/cli/workers/test)).
- La tabla corta los errores a 40 caracteres; usa `--json` para ver el mensaje completo.

Con `--follow`, primero se imprimen las ejecuciones actuales y luego cada nueva en una línea:

```text
Following logs for "get-stock"
────────────────────────────────────────
Press Ctrl+C to stop.

Oct 6, 2026, 03:10 PM  error  102ms  cli-test  INVENTORY_API_KEY is not configured in secrets
Oct 6, 2026, 03:12 PM  ok  245ms  tool_calling
```

Si una consulta falla por red, muestra `Could not fetch logs (...). Retrying...` y sigue intentando; con errores de autenticación o si el worker no existe, se detiene con código 1.

### Salida JSON

```json
[
{
  "id": "...",
  "workerName": "get-stock",
  "workerType": "tool",
  "status": "error",
  "durationMs": 102,
  "triggerSource": "cli-test",
  "error": "INVENTORY_API_KEY is not configured in secrets",
  "createdAt": "2026-10-06T20:10:00Z"
}
]
```

Con `--follow --json`, cada ejecución se imprime como un objeto JSON por línea (NDJSON).

### Errores comunes

| Mensaje | Causa | Solución |
|---------|-------|----------|
| `--limit must be a whole number between 1 and 1000.` | Valor de `-l` fuera de rango o no entero. | Usa un entero entre 1 y 1000: `-l 100`. |
| `No logs found for "<nombre>"` | El worker no tiene ejecuciones o el nombre no existe. | Revisa el nombre con [`plazbot workers list`](https://developers.plazbot.com/cli/workers/list). |
| `You are not signed in.` | No hay sesión. | Ejecuta [`plazbot login`](https://developers.plazbot.com/cli/login). |
