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

Журналирование

Обзор для пользователей (CLI + Control UI + конфигурация) см. в /logging. В OpenClaw есть две «поверхности» журналов:
  • Консольный вывод (то, что вы видите в терминале / Debug UI).
  • Файловые журналы (строки JSON), записываемые логгером Gateway.
При запуске Gateway записывает в журнал разрешенную модель агента по умолчанию вместе с режимами по умолчанию, которые влияют на новые сеансы, например:
agent model: openai/gpt-5.5 (thinking=medium, fast=on)
thinking берется из агента по умолчанию, параметров модели или глобального значения агента по умолчанию; если оно не задано, сводка запуска показывает medium. fast берется из агента по умолчанию или параметров модели fastMode.

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

  • Скользящий файл журнала по умолчанию находится в /tmp/openclaw/ (один файл на день): openclaw-YYYY-MM-DD.log
    • Дата использует локальный часовой пояс хоста Gateway.
  • Активные файлы журналов ротируются при logging.maxFileBytes (по умолчанию: 100 MB), с сохранением до пяти нумерованных архивов и продолжением записи в новый активный файл.
  • Путь к файлу журнала и уровень можно настроить через ~/.openclaw/openclaw.json:
    • logging.file
    • logging.level
Формат файла: один объект JSON на строку. Пути кода Talk, голосового режима реального времени и управляемых комнат используют общий файловый логгер для ограниченных записей жизненного цикла. Эти записи предназначены для операционной отладки и экспорта журналов OTLP; текст транскрипта, аудиоданные, идентификаторы ходов, идентификаторы вызовов и идентификаторы элементов провайдера не копируются в запись журнала. Вкладка Logs в Control UI отслеживает этот файл через Gateway (logs.tail). CLI может делать то же самое:
openclaw logs --follow
Подробность и уровни журналирования
  • Файловые журналы управляются исключительно logging.level.
  • --verbose влияет только на подробность консоли (и стиль журналов WS); он не повышает уровень файлового журнала.
  • Чтобы записывать детали, доступные только в подробном режиме, в файловые журналы, задайте logging.level как debug или trace.
  • Журналирование Trace также включает диагностические сводки времени для выбранных горячих путей, таких как подготовка фабрики инструментов Plugin. См. /tools/plugin#slow-plugin-tool-setup.

Захват консоли

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

Редактирование секретов

OpenClaw может маскировать чувствительные токены до того, как вывод журнала или транскрипта покинет процесс. Эта политика редактирования журналов применяется к консоли, файловому журналу, записям журналов OTLP и текстовым приемникам транскриптов сеансов, поэтому совпадающие секретные значения маскируются до записи строк JSONL или сообщений на диск.
  • logging.redactSensitive: off | tools (по умолчанию: tools)
  • logging.redactPatterns: массив строк регулярных выражений (переопределяет значения по умолчанию)
    • Используйте необработанные строки регулярных выражений (автоматически gi) или /pattern/flags, если нужны пользовательские флаги.
    • Совпадения маскируются с сохранением первых 6 + последних 4 символов (длина >= 18), иначе ***.
    • Значения по умолчанию покрывают распространенные назначения ключей, флаги CLI, поля JSON, заголовки bearer, блоки PEM, популярные префиксы токенов и имена полей платежных учетных данных, такие как номер карты, CVC/CVV, общий платежный токен и платежные учетные данные.
Некоторые границы безопасности всегда редактируют секреты независимо от logging.redactSensitive. К ним относятся события вызовов инструментов Control UI, вывод инструмента sessions_history, экспорты поддержки диагностики, наблюдения ошибок провайдера, отображение команд подтверждения exec и журналы протокола Gateway WebSocket. Эти поверхности все еще могут использовать logging.redactPatterns как дополнительные шаблоны, но redactSensitive: "off" не заставляет их выводить необработанные секреты.

Журналы Gateway WebSocket

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

Стиль журналов WS

openclaw gateway поддерживает переключатель стиля для каждого Gateway:
  • --ws-log auto (по умолчанию): обычный режим оптимизирован; подробный режим использует компактный вывод
  • --ws-log compact: компактный вывод (парные запрос/ответ) в подробном режиме
  • --ws-log full: полный вывод по каждому фрейму в подробном режиме
  • --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, чтобы увидеть их)
Это сохраняет существующие файловые журналы стабильными, делая интерактивный вывод удобным для просмотра.

См. также