Логирование¶
Пользовательский обзор (CLI + Control UI + конфиг) см. в /logging.
В OpenClaw есть две «поверхности» логирования:
- Вывод в консоль (то, что вы видите в терминале / Debug UI).
- Файловые логи (строки JSON), записываемые логгером Gateway (шлюз).
Файловый логгер¶
- Файл логов с прокруткой по умолчанию находится в
/tmp/openclaw/(один файл в день):openclaw-YYYY-MM-DD.log - Дата использует локальный часовой пояс хоста шлюза Gateway.
- Путь к файлу логов и уровень можно настроить через
~/.openclaw/openclaw.json: logging.filelogging.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, чтобы их видеть)
Это позволяет сохранить стабильность существующих файловых логов, одновременно делая интерактивный вывод удобным для просмотра.