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

🤗 Transformers имеет централизованную систему журналирования, что позволяет легко настроить уровень детализации библиотеки.

В настоящее время уровень детализации библиотеки по умолчанию составляет `WARNING`.

Чтобы изменить уровень детализации, достаточно использовать один из прямых сеттеров. Например, так можно установить уровень INFO.

```python
import transformers

transformers.logging.set_verbosity_info()
```

Вы также можете использовать переменную окружения `TRANSFORMERS_VERBOSITY`, чтобы переопределить уровень детализации по умолчанию. Допустимые значения: `debug`, `info`, `warning`, `error`, `critical`, `fatal`. Пример:

```bash
TRANSFORMERS_VERBOSITY=error ./myprogram.py
```

Кроме того, некоторые `warnings` можно отключить, установив переменную окружения `TRANSFORMERS_NO_ADVISORY_WARNINGS` в истинное значение, например *1*. Это отключит все предупреждения, записываемые с помощью `logger.warning_advice`. Например:

```bash
TRANSFORMERS_NO_ADVISORY_WARNINGS=1 ./myprogram.py
```

Вот пример того, как использовать тот же логгер, что и библиотека, в собственном модуле или скрипте:

```python
from transformers.utils import logging

logging.set_verbosity_info()
logger = logging.get_logger("transformers")
logger.info("INFO")
logger.warning("WARN")
```

Все методы этого модуля журналирования описаны ниже. Основные из них — [logging.get_verbosity()](/docs/transformers/main/ru/main_classes/logging#transformers.utils.logging.get_verbosity) для получения текущего уровня детализации в логгере и [logging.set_verbosity()](/docs/transformers/main/ru/main_classes/logging#transformers.utils.logging.set_verbosity) для установки уровня детализации по вашему выбору. В порядке от наименее детализированного к наиболее детализированному эти уровни (соответствующие им целочисленные значения указаны в скобках) следующие:

- `transformers.logging.CRITICAL` или `transformers.logging.FATAL` (целое значение, 50): сообщать только о самых критических ошибках.
- `transformers.logging.ERROR` (int value, 40): сообщать только об ошибках.
- `transformers.logging.WARNING` или `transformers.logging.WARN` (целое значение, 30): выводит только ошибки и предупреждения. Это уровень по умолчанию, используемый библиотекой.
- `transformers.logging.INFO` (целое значение, 20): сообщает об ошибках, предупреждениях и базовой информации.
- `transformers.logging.DEBUG` (целое значение, 10): выводить всю информацию.

По умолчанию во время загрузки модели отображаются индикаторы прогресса `tqdm`. Функции [logging.disable_progress_bar()](/docs/transformers/main/ru/main_classes/logging#transformers.utils.logging.disable_progress_bar) и [logging.enable_progress_bar()](/docs/transformers/main/ru/main_classes/logging#transformers.utils.logging.enable_progress_bar) позволяют отключить или включить это поведение.

## `logging` и `warnings`[[transformers.utils.logging.captureWarnings]]

В Python есть две системы журналирования, которые часто используются вместе: `logging`, описанная выше, и `warnings`, которая позволяет дополнительно классифицировать предупреждения по конкретным категориям, например, `FutureWarning` для функции или пути, которые уже устарели, и `DeprecationWarning` для указания на предстоящее устаревание.

Мы используем оба в библиотеке `transformers`. Мы используем и адаптируем метод `captureWarnings` модуля `logging`, чтобы обеспечить управление этими предупреждающими сообщениями с помощью описанных выше установщиков уровня детализации.

Что это значит для разработчиков библиотеки? Мы должны соблюдать следующие эвристики:

- `warnings` следует предпочитать разработчикам библиотеки и библиотек, зависящих от `transformers`
- `logging` следует использовать конечным пользователям библиотеки, применяющим её в повседневных проектах

См. справочную информацию по методу `captureWarnings` ниже.

#### transformers.utils.logging.captureWarnings[[transformers.utils.logging.captureWarnings]]

```python
transformers.utils.logging.captureWarnings(capture)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/logging.py#L136)

Вызывает метод `captureWarnings` из библиотеки логирования для управления предупреждениями, выдаваемыми библиотекой `warnings`.

Read more about this method here: https://docs.python.org/3/library/logging.html#integration-with-the-warnings-module

Все предупреждения будут записываться в логгер `py.warnings`.

Внимание: этот метод также добавляет обработчик в этот логгер, если его еще нет, и обновляет уровень логирования этого логгера до уровня корневого логгера библиотеки.

## Базовые сеттеры[[transformers.utils.logging.set_verbosity_error]]

#### transformers.utils.logging.set_verbosity_error[[transformers.utils.logging.set_verbosity_error]]

```python
transformers.utils.logging.set_verbosity_error()
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/logging.py#L230)

Установите уровень детализации на `ERROR`.

#### transformers.utils.logging.set_verbosity_warning[[transformers.utils.logging.set_verbosity_warning]]

```python
transformers.utils.logging.set_verbosity_warning()
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/logging.py#L220)

Установите уровень детализации на `WARNING`.

#### transformers.utils.logging.set_verbosity_info[[transformers.utils.logging.set_verbosity_info]]

```python
transformers.utils.logging.set_verbosity_info()
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/logging.py#L215)

Установите уровень детализации на `INFO`.

#### transformers.utils.logging.set_verbosity_debug[[transformers.utils.logging.set_verbosity_debug]]

```python
transformers.utils.logging.set_verbosity_debug()
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/logging.py#L225)

Установите уровень детализации на `DEBUG`.

## Другие функции[[transformers.utils.logging.get_verbosity]]

#### transformers.utils.logging.get_verbosity[[transformers.utils.logging.get_verbosity]]

```python
transformers.utils.logging.get_verbosity()
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/logging.py#L173)

**Возвращает:** `int`

Уровень ведения журнала.

Возвращает текущий уровень корневого логгера 🤗 Transformers в виде int.

🤗 Transformers поддерживает следующие уровни журналирования:

- 50: `transformers.logging.CRITICAL` или `transformers.logging.FATAL`
- 40: `transformers.logging.ERROR`
- 30: `transformers.logging.WARNING` или `transformers.logging.WARN`
- 20: `transformers.logging.INFO`
- 10: `transformers.logging.DEBUG`

#### transformers.utils.logging.set_verbosity[[transformers.utils.logging.set_verbosity]]

```python
transformers.utils.logging.set_verbosity(verbosity: int)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/logging.py#L196)

**Параметры:**

verbosity (`int`) : Уровень логирования, например, один из:  - `transformers.logging.CRITICAL` или `transformers.logging.FATAL` - `transformers.logging.ERROR` - `transformers.logging.WARNING` или `transformers.logging.WARN` - `transformers.logging.INFO` - `transformers.logging.DEBUG`

Установите уровень детализации корневого логгера 🤗 Transformers.

#### transformers.utils.logging.get_logger[[transformers.utils.logging.get_logger]]

```python
transformers.utils.logging.get_logger(name: str | None = None)
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/logging.py#L159)

Возвращает логгер с указанным именем.

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

#### transformers.utils.logging.enable_default_handler[[transformers.utils.logging.enable_default_handler]]

```python
transformers.utils.logging.enable_default_handler()
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/logging.py#L244)

Включите обработчик по умолчанию корневого логгера HuggingFace Transformers.

#### transformers.utils.logging.disable_default_handler[[transformers.utils.logging.disable_default_handler]]

```python
transformers.utils.logging.disable_default_handler()
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/logging.py#L235)

Отключите обработчик по умолчанию корневого логгера HuggingFace Transformers.

#### transformers.utils.logging.enable_explicit_format[[transformers.utils.logging.enable_explicit_format]]

```python
transformers.utils.logging.enable_explicit_format()
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/logging.py#L290)

Включите явное форматирование для каждого логгера HuggingFace Transformers. Явный форматтер выглядит следующим образом:
```
    [LEVELNAME|FILENAME|LINE NUMBER] TIME >> MESSAGE
```

Все обработчики, в настоящее время привязанные к корневому логгеру, затрагиваются этим методом.

#### transformers.utils.logging.reset_format[[transformers.utils.logging.reset_format]]

```python
transformers.utils.logging.reset_format()
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/logging.py#L305)

Сбрасывает форматирование для логгеров HuggingFace Transformers.

Все обработчики, в настоящее время привязанные к корневому логгеру, затрагиваются этим методом.

#### transformers.utils.logging.enable_progress_bar[[transformers.utils.logging.enable_progress_bar]]

```python
transformers.utils.logging.enable_progress_bar()
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/logging.py#L410)

Включить индикатор прогресса tqdm.

#### transformers.utils.logging.disable_progress_bar[[transformers.utils.logging.disable_progress_bar]]

```python
transformers.utils.logging.disable_progress_bar()
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/logging.py#L417)

Отключить индикатор прогресса tqdm.

