Registro¶
Para una vista general orientada al usuario (CLI + Control UI + configuración), consulte /logging.
OpenClaw tiene dos “superficies” de logs:
- Salida de consola (lo que usted ve en el terminal / UI de depuración).
- Logs en archivos (líneas JSON) escritos por el logger del Gateway.
Logger basado en archivos¶
- El archivo de log rotativo predeterminado está en
/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 del archivo de log y el nivel se pueden configurar mediante
~/.openclaw/openclaw.json: logging.filelogging.level
El formato del archivo es un objeto JSON por línea.
La pestaña Logs del Control UI sigue este archivo a través del Gateway (logs.tail).
La CLI puede hacer lo mismo:
openclaw logs --follow
Verbose vs. niveles de log
- Los logs en archivos se controlan exclusivamente por
logging.level. --verbosesolo afecta la verbosidad de la consola (y el estilo de logs WS); no eleva el nivel de log del archivo.- Para capturar detalles solo-verbose en los logs de archivo, configure
logging.levelendebugotrace.
Captura de consola¶
La CLI captura console.log/info/warn/error/debug/trace y los escribe en los logs de archivo,
mientras sigue imprimiendo en stdout/stderr.
Usted puede ajustar la verbosidad de la consola de forma independiente mediante:
logging.consoleLevel(predeterminadoinfo)logging.consoleStyle(pretty|compact|json)
Redacción de resúmenes de herramientas¶
Los resúmenes verbosos de herramientas (p. ej., 🛠️ Exec: ...) pueden enmascarar tokens sensibles antes de que lleguen
al flujo de la consola. Esto es solo para herramientas y no altera los logs de archivo.
logging.redactSensitive:off|tools(predeterminado:tools)logging.redactPatterns: arreglo de cadenas regex (anula los valores predeterminados)- Use cadenas regex sin procesar (auto
gi), o/pattern/flagssi necesita banderas personalizadas. - Las coincidencias se enmascaran conservando los primeros 6 + los últimos 4 caracteres (longitud >= 18); de lo contrario
***. - Los valores predeterminados cubren asignaciones comunes de claves, flags de la CLI, campos JSON, encabezados bearer, bloques PEM y prefijos populares de tokens.
Logs de WebSocket del Gateway¶
El Gateway imprime logs del protocolo WebSocket en dos modos:
- Modo normal (sin
--verbose): solo se imprimen resultados RPC “interesantes”: - errores (
ok=false) - llamadas lentas (umbral predeterminado:
>= 50ms) - errores de parseo
- Modo verbose (
--verbose): imprime todo el tráfico de solicitudes/respuestas WS.
Estilo de logs WS¶
openclaw gateway admite un cambio de estilo por Gateway:
--ws-log auto(predeterminado): el modo normal está optimizado; el modo verbose usa salida compacta--ws-log compact: salida compacta (solicitud/respuesta emparejadas) cuando está en verbose--ws-log full: salida completa por frame cuando está en verbose--compact: alias de--ws-log compact
Ejemplos:
# optimized (only errors/slow)
openclaw gateway
# show all WS traffic (paired)
openclaw gateway --verbose --ws-log compact
# show all WS traffic (full meta)
openclaw gateway --verbose --ws-log full
Formato de consola (logging por subsistemas)¶
El formateador de consola es consciente de TTY y muestra líneas consistentes con prefijos. Los loggers por subsistema mantienen la salida agrupada y fácil de escanear.
Comportamiento:
- Prefijos de subsistema en cada línea (p. ej.,
[gateway],[canvas],[tailscale]) - Colores por subsistema (estables por subsistema) además del color por nivel
- Color cuando la salida es un TTY o el entorno parece un terminal enriquecido (
TERM/COLORTERM/TERM_PROGRAM), respetaNO_COLOR - Prefijos de subsistema abreviados: elimina el
gateway/inicial +channels/, conserva los últimos 2 segmentos (p. ej.,whatsapp/outbound) - Sub-loggers por subsistema (prefijo automático + campo estructurado
{ subsystem }) logRaw()para salida QR/UX (sin prefijo, sin formato)- Estilos de consola (p. ej.,
pretty | compact | json) - Nivel de log de consola separado del nivel de log de archivo (el archivo mantiene todo el detalle cuando
logging.levelse establece endebug/trace) - Los cuerpos de mensajes de WhatsApp se registran en
debug(use--verbosepara verlos)
Esto mantiene estables los logs de archivo existentes mientras hace que la salida interactiva sea fácil de escanear.