Перейти к основному содержанию

Логирование

Пользовательский обзор (CLI + Control UI + конфиг) см. в /logging. В OpenClaw есть две «поверхности» логирования:
  • Вывод в консоль (то, что вы видите в терминале / Debug UI).
  • Файловые логи (строки JSON), записываемые логгером Gateway (шлюз).

Файловый логгер

  • Файл логов с прокруткой по умолчанию находится в /tmp/openclaw/ (один файл в день): openclaw-YYYY-MM-DD.log
    • Дата использует локальный часовой пояс хоста шлюза Gateway.
  • Путь к файлу логов и уровень можно настроить через ~/.openclaw/openclaw.json:
    • logging.file
    • logging.level
Формат файла — один объект JSON на строку. Вкладка Logs в Control UI делает tail этого файла через Gateway (шлюз) (logs.tail). CLI может делать то же самое:
openclaw logs --follow
Verbose vs. уровни логов
  • Файловые логи управляются исключительно через 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 (авто 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‑режим использует компактный вывод
  • --ws-log compact: компактный вывод (связанные запрос/ответ) в verbose‑режиме
  • --ws-log full: полный вывод по каждому фрейму в 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, чтобы их видеть)
Это позволяет сохранить стабильность существующих файловых логов, одновременно делая интерактивный вывод удобным для просмотра.