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