OpenClawSkills
GitHub
Gateway / Operations • 5 min de lectura

Logging

Logging surfaces, file logs, WS log styles, and console formatting

Para una visión general orientada al usuario (CLI + UI de Control + config), ver ''/logging''.

OpenClaw has two log "surfaces":

- Console output (what you see in the terminal / Debug UI).

- File logs (JSON lines) written by the gateway logger.

Tutorial.step

Logger basado en archivo

- El archivo de log rolling predeterminado está bajo ''/tmp/openclaw/'' (un archivo por día): ''openclaw-YYYY-MM-DD.log''

- La fecha usa la zona horaria local del host del gateway.

- La ruta y nivel del archivo de log pueden configurarse vía ''~/.openclaw/openclaw.json'':

- ''logging.file''

- ''logging.level''

El formato del archivo es un objeto JSON por línea.

El tab de Logs del UI de Control hace tail de este archivo vía el gateway (''logs.tail'').

El CLI puede hacer lo mismo:

Bash
openclaw logs --follow

Verbose vs. niveles de log

- ''Logs de archivo'' son controlados exclusivamente por ''logging.level''.

- ''--verbose'' solo afecta ''verbosidad de consola'' (y estilo de log WS); ''no''

eleva el nivel de log de archivo.

''trace''.

Para capturar detalles solo-verbose en logs de archivo, establece ''logging.level'' a ''debug'' o

Tutorial.step

Captura de consola

El formato del archivo es un objeto JSON por línea.

El tab de Logs del UI de Control hace tail de este archivo vía el gateway (''logs.tail'').

Puedes ajustar la verbosidad de consola independientemente vía:

- ''logging.consoleLevel''(predeterminado ''info'')

- ''logging.consoleStyle'' (''pretty'' | ''compact'' | ''json'')

Tutorial.step

Captura de consola

El CLI captura ''console.log/info/warn/error/debug/trace'' y los escribe a logs de archivo,

mientras sigue imprimiendo a stdout/stderr.

- ''logging.consoleLevel'' (predeterminado ''info'')

- ''logging.consoleStyle'' (''pretty'' | ''compact'' | ''json'')

- Usa strings de regex crudos (auto ''gi''), o ''/patrón/flags'' si necesitas flags personalizados.

- Las coincidencias se enmascaran manteniendo los primeros 6 + últimos 4 caracteres (longitud >= 18), sino ''***''.

- Los predeterminados cubren asignaciones de claves comunes, flags CLI, campos JSON, headers bearer, bloques PEM y prefijos de token populares.

Tutorial.step

Redacción de resumen de herramientas

Los resúmenes de herramientas verbose (ej. ''🛠️ Exec: ...'') pueden enmascarar tokens sensibles antes de llegar al stream de consola. Esto es ''solo-herramientas'' y no altera logs de archivo.

- ''Modo normal (sin ''--verbose'')'': solo resultados RPC "interesantes" se imprimen:

- ''logging.redactSensitive'': ''off'' | ''tools'' (predeterminado: ''tools'')

- ''logging.redactPatterns'': array de strings de regex (anula predeterminados)

- Usa strings de regex crudos (auto ''gi''), o ''/patrón/flags'' si necesitas flags personalizados.

- ''Modo verbose (''--verbose'')'': imprime todo el tráfico de petición/respuesta WS.

#

Tutorial.step

Logs WebSocket del Gateway

El gateway imprime logs de protocolo WebSocket en dos modos:

- ''--ws-log auto'' (predeterminado): modo normal está optimizado; modo verbose usa salida compacta

- ''--ws-log compact'': salida compacta (petición/respuesta emparejada) cuando verbose

- ''--ws-log full'': salida completa por-frame cuando verbose

- ''--compact'': alias para ''--ws-log compact''

Ejemplos:

Bash
openclaw gateway


openclaw gateway --verbose --ws-log compact


openclaw gateway --verbose --ws-log full
Tutorial.step

Formateo de consola (logging de subsistema)

El formateador de consola es TTY-aware e imprime líneas consistentes con prefijos.

Loggers de subsistema mantienen la salida agrupada y escaneable.

Comportamiento:

- ''Prefijos de subsistema'' en cada línea (ej. ''[gateway]'', ''[canvas]'', ''[tailscale]'')

- Colores de subsistema (estables por subsistema) más coloreado de nivel

- ''Color cuando la salida es un TTY o el entorno parece una terminal rica'' (''TERM''/''COLORTERM''/''TERM_PROGRAM''), respeta ''NO_COLOR''

- ''Prefijos de subsistema acortados'': descarta ''gateway/'' inicial + ''channels/'', mantiene los últimos 2 segmentos (ej. ''whatsapp/outbound'')

ReferenceGatewayLoggingPage.step06.item5

- ''''logRaw()'''' para salida QR/UX (sin prefijo, sin formateo)

- ''Estilos de consola'' (ej. ''pretty | compact | json'')

- ''Nivel de log de consola'' separado del nivel de log de archivo (archivo mantiene detalle completo cuando ''logging.level'' está establecido a ''debug''/''trace'')

- ''Cuerpos de mensajes WhatsApp'' se loggean a nivel ''debug'' (usa ''--verbose'' para verlos)

Esto mantiene los logs de archivo existentes estables mientras hace la salida interactiva escaneable.