Registro
Para ver una descripción general orientada al usuario (CLI + Interfaz de control + configuración), consulta /logging. OpenClaw tiene dos superficies de registro:- Salida de consola - lo que ves en la terminal / Interfaz de depuración.
- Registros de archivo - líneas JSON escritas por el registrador del Gateway.
thinking proviene del agente predeterminado, de los parámetros del modelo o del valor predeterminado global del agente; cuando no está definido muestra medium. fast proviene del agente predeterminado o de los parámetros fastMode del modelo.
Registrador basado en archivos
- El archivo de registro rotativo predeterminado está bajo
/tmp/openclaw/(un archivo por día):openclaw-YYYY-MM-DD.log, fechado según la zona horaria local del host del Gateway. Si ese directorio no es seguro o no se puede escribir (propietario incorrecto, escribible por todos, un enlace simbólico), OpenClaw recurre en su lugar a una rutaos.tmpdir()/openclaw-<uid>con ámbito de usuario; en Windows siempre usa esa alternativa de tmpdir del sistema operativo. - Los archivos de registro activos rotan en
logging.maxFileBytes(predeterminado: 100 MB), mantienen hasta cinco archivos numerados (.1a.5) y continúan escribiendo en un archivo activo nuevo. - Configura la ruta y el nivel del archivo de registro mediante
~/.openclaw/openclaw.json:logging.file,logging.level. - El formato de archivo es un objeto JSON por línea.
logs.tail). La CLI hace lo mismo:
Detallado frente a niveles de registro
- Los registros de archivo se controlan exclusivamente mediante
logging.level. --verbosesolo afecta la verbosidad de consola (y el estilo de registro WS); no eleva el nivel de registro de archivo.- Para capturar detalles solo detallados en los registros de archivo, establece
logging.levelendebugotrace. - El registro de trazas también incluye resúmenes de tiempos de diagnóstico para rutas críticas seleccionadas, como la preparación de la fábrica de herramientas de Plugin. Consulta /tools/plugin#slow-plugin-tool-setup.
Captura de consola
La CLI capturaconsole.log/info/warn/error/debug/trace, los escribe en los registros de archivo y sigue imprimiendo en stdout/stderr.
Ajusta la verbosidad de consola de forma independiente:
logging.consoleLevel(predeterminadoinfo)logging.consoleStyle(pretty|compact|json; por defectoprettyen una TTY,compacten caso contrario)
Redacción
OpenClaw enmascara los tokens sensibles antes de que la salida de registros o transcripciones salga del proceso. Esta política de redacción se aplica en consola, registros de archivo, registros OTLP y sumideros de texto de transcripción de sesión, por lo que los valores secretos coincidentes se enmascaran antes de que las líneas JSONL o los mensajes se escriban en disco.logging.redactSensitive:off|tools(predeterminado:tools)logging.redactPatterns: arreglo de cadenas regex (anula los valores predeterminados)- Usa cadenas regex sin procesar (auto
gi) o/pattern/flagspara banderas personalizadas. - Las coincidencias se enmascaran conservando los primeros 6 + últimos 4 caracteres (valores >= 18 caracteres); los valores más cortos se convierten en
***. - Los valores predeterminados cubren asignaciones de claves comunes, banderas de CLI, campos JSON, encabezados bearer, bloques PEM, prefijos populares de tokens de proveedores y nombres de campos de credenciales de pago (número de tarjeta, CVC/CVV, token de pago compartido, credencial de pago).
- Usa cadenas regex sin procesar (auto
logging.redactSensitive: eventos de llamada a herramientas de la Interfaz de control, salida de la herramienta sessions_history, exportaciones de soporte de diagnóstico, observaciones de errores de proveedor, visualización de comandos de aprobación de ejecución y registros del protocolo WebSocket del Gateway. Estas superficies siguen respetando logging.redactPatterns como patrones adicionales, pero redactSensitive: "off" no hace que emitan secretos sin procesar.
Registros WebSocket del Gateway
El Gateway imprime registros del protocolo WebSocket en dos modos:- Modo normal (sin
--verbose): solo imprime resultados RPC “interesantes”: errores (ok=false), llamadas lentas (umbral predeterminado:>= 50ms) y errores de análisis. - Modo detallado (
--verbose): imprime todo el tráfico de solicitud/respuesta WS.
Estilo de registro WS
openclaw gateway admite un selector de estilo por Gateway:
--ws-log auto(predeterminado): el modo normal está optimizado; el modo detallado usa salida compacta.--ws-log compact: salida compacta (solicitud/respuesta emparejadas) cuando está detallado.--ws-log full: salida completa por trama cuando está detallado.--compact: alias de--ws-log compact.
Formato de consola (registro por subsistema)
El formateador de consola es consciente de TTY e imprime líneas consistentes con prefijo. Los registradores de subsistema mantienen la salida agrupada y fácil de escanear:- Prefijos de subsistema en cada línea (p. ej.
[gateway],[canvas],[tailscale]). - Colores de subsistema (estables por subsistema, con hash a partir del nombre) más coloración por nivel.
- Color cuando la salida es una TTY o el entorno parece una terminal enriquecida (
TERM/COLORTERM/TERM_PROGRAM); respetaNO_COLORyFORCE_COLOR. - Prefijos de subsistema acortados: elimina un segmento inicial
gateway/,channels/oproviders/, y luego conserva como máximo los últimos 2 segmentos restantes (p. ej.channels/turn/kernelse muestra comoturn/kernel). Los subsistemas de canales conocidos (telegram,whatsapp,slack, etc.) siempre se contraen solo al nombre del canal. - Subregistradores por subsistema (prefijo automático + campo estructurado
{ subsystem }). logRaw()para salida QR/UX (sin prefijo, sin formato).- Estilos de consola:
pretty|compact|json. - El nivel de registro de consola está separado del nivel de registro de archivo (el archivo conserva todos los detalles cuando
logging.levelesdebug/trace). - Los cuerpos de mensajes de WhatsApp se registran en
debug(usa--verbosepara verlos).