---
read_when:
    - Зміна виводу або форматів логування
    - Налагодження виводу CLI або gateway
summary: Поверхні логування, файлові логи, стилі логів WS і форматування консолі
title: Логування Gateway
x-i18n:
    generated_at: "2026-04-23T20:53:26Z"
    model: gpt-5.4
    provider: openai
    source_hash: e805c4c1d13e9fe13a0a08e36472da096ff57aa681e2e34eae9698b891d6a630
    source_path: gateway/logging.md
    workflow: 15
---

# Логування

Огляд для користувачів (CLI + Control UI + конфігурація) див. у [/logging](/uk/logging).

OpenClaw має дві “поверхні” логування:

- **Вивід у консоль** (те, що ви бачите в terminal / Debug UI).
- **Файлові логи** (рядки JSON), які записує logger gateway.

## Файловий logger

- Типовий rolling log file знаходиться в `/tmp/openclaw/` (один файл на день): `openclaw-YYYY-MM-DD.log`
  - Дата використовує локальний часовий пояс хоста gateway.
- Шлях до log file і рівень можна налаштувати через `~/.openclaw/openclaw.json`:
  - `logging.file`
  - `logging.level`

Формат файлу — один JSON-об’єкт на рядок.

Вкладка Logs у Control UI читає цей файл у режимі tail через gateway (`logs.tail`).
CLI може робити те саме:

```bash
openclaw logs --follow
```

**Verbose проти рівнів логування**

- **Файлові логи** керуються виключно через `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 (перевизначає типові значення)
  - Використовуйте сирі рядки regex (автоматично `gi`) або `/pattern/flags`, якщо вам потрібні власні прапорці.
  - Збіги маскуються зі збереженням перших 6 + останніх 4 символів (для довжини >= 18), інакше `***`.
  - Типові значення покривають поширені присвоєння ключів, прапорці CLI, поля JSON, bearer headers, PEM-блоки та популярні префікси токенів.

## Логи Gateway WebSocket

Gateway виводить логи протоколу WebSocket у двох режимах:

- **Звичайний режим (без `--verbose`)**: виводяться лише “цікаві” результати RPC:
  - помилки (`ok=false`)
  - повільні виклики (типовий поріг: `>= 50ms`)
  - помилки розбору
- **Verbose-режим (`--verbose`)**: виводиться весь трафік WS request/response.

### Стиль логів WS

`openclaw gateway` підтримує перемикач стилю для кожного gateway:

- `--ws-log auto` (типово): звичайний режим оптимізований; verbose-режим використовує compact output
- `--ws-log compact`: compact output (парний request/response) у verbose-режимі
- `--ws-log full`: повний per-frame output у verbose-режимі
- `--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 або середовище схоже на багатий terminal (`TERM`/`COLORTERM`/`TERM_PROGRAM`), із повагою до `NO_COLOR`
- **Скорочені префікси підсистем**: відкидає початкові `gateway/` + `channels/`, залишає останні 2 сегменти (наприклад `whatsapp/outbound`)
- **Sub-logger-и за підсистемами** (автоматичний префікс + структуроване поле `{ subsystem }`)
- **`logRaw()`** для QR/UX-виводу (без префікса, без форматування)
- **Стилі консолі** (наприклад `pretty | compact | json`)
- **Рівень логів консолі** окремо від рівня файлових логів (файл зберігає повну деталізацію, коли `logging.level` задано як `debug`/`trace`)
- **Тіла повідомлень WhatsApp** логуються на рівні `debug` (використовуйте `--verbose`, щоб їх бачити)

Це зберігає стабільність наявних файлових логів і водночас робить інтерактивний вивід зручним для перегляду.
