> ## Documentation Index
> Fetch the complete documentation index at: https://openclaw.veiseule.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Логирование

# Логирование

Пользовательский обзор (CLI + Control UI + конфиг) см. в [/logging](/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 может делать то же самое:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
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`

Примеры:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
# 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`, чтобы их видеть)

Это позволяет сохранить стабильность существующих файловых логов, одновременно делая интерактивный вывод удобным для просмотра.
