Перейти до основного вмісту

Логування

Огляд для користувачів (CLI + Control UI + config) див. у /logging. OpenClaw має дві «поверхні» логування:
  • Вивід у консоль (те, що ви бачите в терміналі / Debug UI).
  • Файлові логи (рядки JSON), які записує logger gateway.

Logger на основі файлів

  • Типовий rolling log file розміщується в /tmp/openclaw/ (один файл на день): openclaw-YYYY-MM-DD.log
    • Дата використовує локальний часовий пояс хоста gateway.
  • Шлях до log file і рівень логування можна налаштувати через ~/.openclaw/openclaw.json:
    • logging.file
    • logging.level
Формат файлу — один JSON-об’єкт на рядок. Вкладка Logs у Control UI відстежує цей файл через gateway (logs.tail). CLI може робити те саме:
openclaw logs --follow
Verbose проти рівнів логування
  • Файлові логи керуються виключно через logging.level.
  • --verbose впливає лише на деталізацію консолі (і стиль WS-логів); він не підвищує рівень файлового логування.
  • Щоб записувати подробиці лише verbose у файлові логи, задайте logging.level як debug або trace.

Перехоплення консолі

CLI перехоплює console.log/info/warn/error/debug/trace і записує їх у файлові логи, водночас продовжуючи виводити їх у stdout/stderr. Ви можете окремо налаштувати деталізацію консолі через:
  • logging.consoleLevel (типово info)
  • logging.consoleStyle (pretty | compact | json)

Редагування підсумків інструментів

Докладні підсумки інструментів (наприклад, 🛠️ Exec: ...) можуть маскувати чутливі токени до того, як вони потраплять у потік консолі. Це стосується лише інструментів і не змінює файлові логи.
  • logging.redactSensitive: off | tools (типово: tools)
  • logging.redactPatterns: масив regex-рядків (перевизначає типові значення)
    • Використовуйте сирі regex-рядки (автоматично gi) або /pattern/flags, якщо вам потрібні власні прапорці.
    • Збіги маскуються зі збереженням перших 6 + останніх 4 символів (довжина >= 18), інакше ***.
    • Типові значення охоплюють поширені присвоєння ключів, прапорці CLI, JSON-поля, bearer-заголовки, PEM-блоки та популярні префікси токенів.

WebSocket-логи Gateway

Gateway виводить логи протоколу WebSocket у двох режимах:
  • Звичайний режим (без --verbose): виводяться лише «цікаві» результати RPC:
    • помилки (ok=false)
    • повільні виклики (типовий поріг: >= 50ms)
    • помилки розбору
  • Режим verbose (--verbose): виводиться весь трафік запитів/відповідей WS.

Стиль WS-логів

openclaw gateway підтримує перемикач стилю для кожного gateway:
  • --ws-log auto (типово): звичайний режим оптимізований; режим verbose використовує compact output
  • --ws-log compact: compact output (парний запит/відповідь) у режимі verbose
  • --ws-log full: повний вивід для кожного frame у режимі verbose
  • --compact: псевдонім для --ws-log compact
Приклади:
# 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

Форматування консолі (логування підсистем)

Форматер консолі враховує TTY і друкує узгоджені рядки з префіксами. Логери підсистем зберігають вивід згрупованим і зручним для перегляду. Поведінка:
  • Префікси підсистем у кожному рядку (наприклад, [gateway], [canvas], [tailscale])
  • Кольори підсистем (сталі для кожної підсистеми) плюс кольори рівнів
  • Колір, коли вивід є TTY або середовище схоже на багатий термінал (TERM/COLORTERM/TERM_PROGRAM), з урахуванням NO_COLOR
  • Скорочені префікси підсистем: прибирає початкові gateway/ + channels/, залишає останні 2 сегменти (наприклад, whatsapp/outbound)
  • Підлогери за підсистемою (автоматичний префікс + структуроване поле { subsystem })
  • logRaw() для QR/UX-виводу (без префікса, без форматування)
  • Стилі консолі (наприклад, pretty | compact | json)
  • Рівень логування консолі окремо від рівня файлового логування (файл зберігає повну деталізацію, коли logging.level задано як debug/trace)
  • Тіла повідомлень WhatsApp логуються на рівні debug (використовуйте --verbose, щоб їх побачити)
Це зберігає стабільність наявних файлових логів і водночас робить інтерактивний вивід зручним для перегляду.