---
read_when:
    - Вам нужны целевые отладочные журналы без повышения глобального уровня ведения журналов
    - Для обращения в службу поддержки необходимо собрать журналы конкретной подсистемы
summary: Флаги диагностики для целевых журналов отладки
title: Флаги диагностики
x-i18n:
    generated_at: "2026-07-13T18:05:56Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 24
    provider: openai
    source_hash: 9847f464fde89d9e639b089fe54fb933deb9debad2a6d8b120ab01bacff181a8
    source_path: diagnostics/flags.md
    workflow: 16
---

Флаги диагностики включают дополнительное журналирование для одной подсистемы, не повышая
`logging.level` глобально. Флаг не действует, если подсистема его не проверяет.

## Как это работает

- Флаги — это строки без учета регистра, получаемые из `diagnostics.flags` в
  конфигурации с учетом переопределения переменной окружения `OPENCLAW_DIAGNOSTICS`, с удалением дубликатов и приведением к нижнему регистру.
- `name.*` соответствует самому `name` и всему, что находится под `name.` (например,
  `telegram.*` соответствует `telegram.http`).
- `*` или `all` включает все флаги.
- Перезапустите Gateway после изменения `diagnostics.flags` в конфигурации; оно не
  применяется без перезапуска.

## Известные флаги

| Флаг             | Что включает                                              |
| ---------------- | --------------------------------------------------------- |
| `telegram.http`  | Журналирование HTTP-ошибок Telegram Bot API               |
| `brave.http`     | Журналирование запросов, ответов и кеша Brave Search      |
| `profiler`       | Профилировщик этапа ответа и профилировщик сервера приложений Codex (оба) |
| `reply.profiler` | Только профилировщик этапа ответа                          |
| `codex.profiler` | Только профилировщик сервера приложений Codex             |
| `timeline`       | Структурированный артефакт временной шкалы JSONL (см. ниже) |

## Включение через конфигурацию

```json
{
  "diagnostics": {
    "flags": ["telegram.http"]
  }
}
```

Несколько флагов:

```json
{
  "diagnostics": {
    "flags": ["telegram.http", "brave.http", "gateway.*"]
  }
}
```

## Переопределение переменной окружения (однократное)

```bash
OPENCLAW_DIAGNOSTICS=telegram.http,brave.http
```

Значения разделяются запятыми или пробелами. Специальные значения:

| Значение                    | Эффект                                   |
| --------------------------- | ---------------------------------------- |
| `0`, `false`, `off`, `none` | Отключает все флаги, также переопределяя конфигурацию |
| `1`, `true`, `all`, `*`     | Включает все флаги                       |

`OPENCLAW_DIAGNOSTICS=0` отключает флаги как из переменной окружения, так и из конфигурации для этого
процесса. Это полезно, чтобы временно отключить флаг профилировщика, оставленный включенным в конфигурации,
не редактируя файл.

## Флаги профилировщика

Флаги профилировщика управляют легковесными интервалами измерения времени; в выключенном состоянии они не создают накладных расходов.

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

```bash
OPENCLAW_DIAGNOSTICS=profiler openclaw gateway run
```

Включить только интервалы профилировщика диспетчеризации ответов:

```bash
OPENCLAW_DIAGNOSTICS=reply.profiler openclaw gateway run
```

Включить только интервалы профилировщика запуска, инструментов и потоков сервера приложений Codex:

```bash
OPENCLAW_DIAGNOSTICS=codex.profiler openclaw gateway run
```

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

Или задайте их в конфигурации:

```json
{
  "diagnostics": {
    "flags": ["reply.profiler", "codex.profiler"]
  }
}
```

Перезапустите Gateway после изменения флагов конфигурации. Чтобы отключить флаг профилировщика,
удалите его из `diagnostics.flags` и перезапустите Gateway либо запустите процесс с
`OPENCLAW_DIAGNOSTICS=0`, чтобы переопределить все флаги диагностики для этого запуска.

## Артефакты временной шкалы

Флаг `timeline` (псевдоним: `diagnostics.timeline`) записывает структурированные события времени запуска
и выполнения в формате JSONL для внешних средств автоматизации контроля качества:

```bash
OPENCLAW_DIAGNOSTICS=timeline \
OPENCLAW_DIAGNOSTICS_TIMELINE_PATH=/tmp/openclaw-timeline.jsonl \
openclaw gateway run
```

Или включите его в конфигурации:

```json
{
  "diagnostics": {
    "flags": ["timeline"]
  }
}
```

Путь вывода всегда берется из `OPENCLAW_DIAGNOSTICS_TIMELINE_PATH`, даже
если сам флаг задан в конфигурации; ключа конфигурации для пути нет.
Если `timeline` включен только в конфигурации, самые ранние интервалы загрузки конфигурации
отсутствуют, поскольку OpenClaw еще не прочитал конфигурацию; последующие интервалы запуска
фиксируются как обычно.

`OPENCLAW_DIAGNOSTICS=1`, `=all` и `=*` также включают временную шкалу, поскольку они
включают все флаги. Используйте флаг с областью действия `timeline`, если вам нужен только
артефакт JSONL, а не все остальные флаги диагностики.

Для выборок задержки цикла событий во временной шкале требуется еще одно явное включение помимо
`timeline`: задайте `OPENCLAW_DIAGNOSTICS_EVENT_LOOP=1` (или `on`/`true`/`yes`) в
дополнение к включению временной шкалы.

Записи временной шкалы используют оболочку `openclaw.diagnostics.v1` и могут включать
идентификаторы процессов, имена фаз, имена интервалов, длительности, идентификаторы плагинов, количество
зависимостей, выборки задержки цикла событий, имена операций провайдера, состояние завершения
дочерних процессов, а также имена и сообщения ошибок запуска. Считайте файлы временной шкалы локальными
диагностическими артефактами; проверяйте их перед передачей за пределы своего компьютера.

## Куда записываются журналы

Флаги записывают сообщения в стандартный файл журнала диагностики. По умолчанию:

```
/tmp/openclaw/openclaw-YYYY-MM-DD.log
```

Если задан `logging.file`, вместо этого используется указанный в нем путь. Журналы имеют формат JSONL (один объект JSON
на строку). Редактирование конфиденциальных данных по-прежнему применяется на основе `logging.redactSensitive`.
Полное описание определения пути журнала, ротации и
редактирования конфиденциальных данных см. в разделе [Журналирование](/ru/logging).

## Извлечение журналов

Выбрать последний файл журнала:

```bash
ls -t /tmp/openclaw/openclaw-*.log | head -n 1
```

Отфильтровать HTTP-диагностику Telegram:

```bash
rg "telegram http error" /tmp/openclaw/openclaw-*.log
```

Отфильтровать HTTP-диагностику Brave Search:

```bash
rg "brave http" /tmp/openclaw/openclaw-*.log
```

Или отслеживать журнал во время воспроизведения:

```bash
tail -f /tmp/openclaw/openclaw-$(date +%F).log | rg "telegram http error"
```

Для удаленных экземпляров Gateway вместо этого используйте `openclaw logs --follow` (см.
[/cli/logs](/ru/cli/logs)).

## Примечания

- Если `logging.level` задан выше `warn`, сообщения журналов, управляемые флагами, могут
  подавляться. Значение `info` по умолчанию подходит.
- `brave.http` журналирует URL-адреса и параметры запросов Brave Search, состояние
  и время ответов, а также события попадания в кеш, промаха кеша и записи в кеш. Он не журналирует ключ API
  (передаваемый в заголовке запроса) или тела ответов, однако поисковые запросы могут содержать
  конфиденциальные данные.
- Флаги можно безопасно оставлять включенными; они влияют только на объем журналов
  соответствующей подсистемы.
- Используйте [/logging](/ru/logging), чтобы изменить места назначения журналов, уровни и редактирование конфиденциальных данных.

## Связанные материалы

- [Диагностика Gateway](/ru/gateway/diagnostics)
- [Устранение неполадок Gateway](/ru/gateway/troubleshooting)
