Gateway

Ведение журналов Gateway

Ведение журналов

Обзор для пользователей (CLI + Control UI + конфигурация) см. в разделе /logging.

OpenClaw имеет две поверхности журналирования:

  • Вывод в консоль — то, что отображается в терминале / Debug UI.
  • Файловые журналы — строки JSON, записываемые средством журналирования Gateway.

При запуске Gateway записывает в журнал разрешённую модель агента по умолчанию и значения режимов по умолчанию, влияющие на новые сеансы:

text
модель агента: openai/gpt-5.6-sol (мышление=среднее, быстрый режим=включён)

thinking берётся из агента по умолчанию, параметров модели или глобального значения агента по умолчанию; если значение не задано, отображается medium. fast берётся из агента по умолчанию или параметров fastMode модели.

Файловое журналирование

  • Циклический файл журнала по умолчанию находится в /tmp/openclaw/ (один файл в день): openclaw-YYYY-MM-DD.log, дата определяется по локальному часовому поясу хоста Gateway. Если этот каталог небезопасен или недоступен для записи (неверный владелец, разрешена запись всем или это символическая ссылка), OpenClaw вместо него использует пользовательский путь os.tmpdir()/openclaw-<uid>; в Windows всегда используется этот резервный путь в каталоге временных файлов ОС.
  • Активные файлы журналов ротируются при достижении logging.maxFileBytes (по умолчанию: 100 МБ); сохраняется до пяти нумерованных архивов (от .1 до .5), после чего запись продолжается в новый активный файл.
  • Путь к файлу журнала и уровень журналирования настраиваются через ~/.openclaw/openclaw.json: logging.file, logging.level.
  • Формат файла — один объект JSON на строку.

Пути кода для разговоров, голосового взаимодействия в реальном времени и управляемых комнат используют общее средство файлового журналирования для ограниченных записей жизненного цикла, предназначенных для эксплуатационной отладки и экспорта журналов OTLP. Текст расшифровки, звуковые данные, идентификаторы реплик, вызовов и элементов провайдера никогда не копируются в запись журнала.

Вкладка Logs в Control UI отслеживает этот файл через Gateway (logs.tail). CLI делает то же самое:

bash
openclaw logs --follow

Подробный режим и уровни журналирования

  • Файловые журналы управляются исключительно параметром logging.level.
  • --verbose влияет только на подробность вывода в консоль (и стиль журналов WS) — он не повышает уровень файлового журналирования.
  • Чтобы записывать в файловые журналы сведения, доступные только в подробном режиме, установите logging.level в debug или trace.
  • Трассировочное журналирование также включает диагностические сводки времени выполнения для некоторых горячих путей, например подготовки фабрики инструментов плагина. См. /tools/plugin#slow-plugin-tool-setup.

Перехват консольного вывода

CLI перехватывает console.log/info/warn/error/debug/trace, записывает их в файловые журналы и по-прежнему выводит в stdout/stderr.

Подробность консольного вывода настраивается независимо:

  • logging.consoleLevel (по умолчанию info)
  • logging.consoleStyle (pretty | compact | json; по умолчанию pretty в TTY и compact в остальных случаях)

Маскирование

OpenClaw маскирует конфиденциальные токены до того, как вывод журнала или расшифровки покинет процесс. Эта политика маскирования применяется к консоли, файловым журналам, записям журналов OTLP и текстовым приёмникам расшифровок сеансов, поэтому совпадающие секретные значения маскируются до записи строк JSONL или сообщений на диск.

  • logging.redactSensitive: off | tools (по умолчанию: tools)
  • logging.redactPatterns: массив строк регулярных выражений (переопределяет значения по умолчанию)
    • Используйте строки необработанных регулярных выражений (автоматически gi) или /pattern/flags для пользовательских флагов.
    • При маскировании совпадений сохраняются первые 6 и последние 4 символа (для значений длиной не менее 18 символов); более короткие значения заменяются на ***.
    • Значения по умолчанию охватывают распространённые присваивания ключей, флаги CLI, поля JSON, заголовки носителя, блоки PEM, популярные префиксы токенов поставщиков и имена полей платёжных учётных данных (номер карты, CVC/CVV, общий платёжный токен, платёжные учётные данные).

Некоторые границы безопасности всегда выполняют маскирование независимо от logging.redactSensitive: события вызова инструментов Control UI, вывод инструмента sessions_history, экспорт диагностических данных для поддержки, наблюдения за ошибками провайдеров, отображение команд для подтверждения выполнения и журналы протокола WebSocket Gateway. На этих поверхностях logging.redactPatterns по-прежнему учитывается как набор дополнительных шаблонов, но redactSensitive: "off" не разрешает выводить в них необработанные секреты.

Журналы WebSocket Gateway

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.
bash
# оптимизированный режим (только ошибки и медленные вызовы)openclaw gateway # показать весь трафик WS (парами)openclaw gateway --verbose --ws-log compact # показать весь трафик WS (полные метаданные)openclaw gateway --verbose --ws-log full

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

Средство форматирования консоли учитывает TTY и выводит единообразные строки с префиксами. Средства журналирования подсистем сохраняют вывод сгруппированным и удобным для просмотра:

  • Префиксы подсистем в каждой строке (например, [gateway], [canvas], [tailscale]).
  • Цвета подсистем (постоянные для каждой подсистемы, вычисляются хешированием имени) и цветовое выделение уровней.
  • Цветной вывод, когда вывод направлен в TTY или среда похожа на терминал с расширенными возможностями (TERM/COLORTERM/TERM_PROGRAM); учитываются NO_COLOR и FORCE_COLOR.
  • Сокращённые префиксы подсистем: начальный сегмент gateway/, channels/ или providers/ удаляется, затем сохраняются не более 2 последних оставшихся сегментов (например, channels/turn/kernel отображается как turn/kernel). Известные подсистемы каналов (telegram, whatsapp, slack и т. д.) всегда сокращаются до имени канала.
  • Дочерние средства журналирования по подсистемам (автоматический префикс + структурированное поле { subsystem }).
  • logRaw() для вывода QR/UX (без префикса и форматирования).
  • Стили консоли: pretty | compact | json.
  • Уровень консольного журналирования задаётся отдельно от уровня файлового журналирования (в файле сохраняются все подробности, когда logging.level имеет значение debug/trace).
  • Тела сообщений WhatsApp записываются на уровне debug (используйте --verbose, чтобы увидеть их).

Благодаря этому файловые журналы остаются стабильными, а интерактивный вывод — удобным для просмотра.

См. также

Was this useful?
On this page

On this page