# Journalisation

🤗 Transformers dispose d'un système de journalisation centralisé, ce qui vous permet de configurer facilement le niveau de détail de la bibliothèque.

Actuellement, le niveau de verbosité par défaut de la bibliothèque est `WARNING`.

Pour modifier le niveau de verbosité, utilisez l'un des setters directs. Par exemple, voici comment passer la verbosité au niveau INFO.

```python
import transformers

transformers.logging.set_verbosity_info()
```

Vous pouvez également utiliser la variable d’environnement `TRANSFORMERS_VERBOSITY` pour remplacer le niveau de verbosité par défaut. Vous pouvez la définir sur l’une des valeurs suivantes : `debug`, `info`, `warning`, `error`, `critical`, `fatal`. Par exemple :

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

De plus, certains `warnings` peuvent être désactivés en définissant la variable d’environnement `TRANSFORMERS_NO_ADVISORY_WARNINGS` sur une valeur vraie, comme *1*. Cela désactivera tout avertissement journalisé via `logger.warning_advice`. Par exemple :

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

Voici un exemple d'utilisation du même journaliseur que la bibliothèque dans votre propre module ou script :

```python
from transformers.utils import logging

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

Toutes les méthodes de ce module de journalisation sont documentées ci-dessous. Les principales sont [logging.get_verbosity()](/docs/transformers/main/fr/main_classes/logging#transformers.utils.logging.get_verbosity) pour obtenir le niveau de verbosité actuel du journaliseur et [logging.set_verbosity()](/docs/transformers/main/fr/main_classes/logging#transformers.utils.logging.set_verbosity) pour définir la verbosité au niveau de votre choix. Dans l’ordre (du moins verbeux au plus verbeux), ces niveaux (avec leurs valeurs int correspondantes entre parenthèses) sont :

- `transformers.logging.CRITICAL` ou `transformers.logging.FATAL` (valeur entière, 50) : ne signale que les erreurs les plus critiques.
- `transformers.logging.ERROR` (valeur int, 40) : ne signale que les erreurs.
- `transformers.logging.WARNING` ou `transformers.logging.WARN` (valeur entière, 30) : ne signale que les erreurs et les avertissements. C'est le niveau par défaut utilisé par la bibliothèque.
- `transformers.logging.INFO` (valeur int, 20) : signale les erreurs, les avertissements et les informations de base.
- `transformers.logging.DEBUG` (valeur int, 10) : signale toutes les informations.

Par défaut, les barres de progression `tqdm` sont affichées pendant le téléchargement du modèle. [logging.disable_progress_bar()](/docs/transformers/main/fr/main_classes/logging#transformers.utils.logging.disable_progress_bar) et [logging.enable_progress_bar()](/docs/transformers/main/fr/main_classes/logging#transformers.utils.logging.enable_progress_bar) peuvent être utilisés pour supprimer ou réactiver ce comportement.

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

Python dispose de deux systèmes de journalisation souvent utilisés conjointement : `logging`, décrit ci-dessus, et `warnings`, qui permet de classer les avertissements dans des catégories spécifiques, par exemple `FutureWarning` pour une fonctionnalité ou un chemin déjà obsolète et `DeprecationWarning` pour signaler une obsolescence à venir.

Nous utilisons les deux dans la bibliothèque `transformers`. Nous exploitons et adaptons la méthode `captureWarnings` de `logging` pour permettre la gestion de ces messages d’avertissement par les paramètres de verbosité mentionnés ci-dessus.

Que signifie cela pour les développeurs de la bibliothèque ? Nous devons respecter les heuristiques suivantes :

- `warnings` doivent être privilégiés par les développeurs de la bibliothèque et des bibliothèques dépendantes de `transformers`
- `logging` doit être utilisé par les utilisateurs finaux de la bibliothèque qui l’emploient dans leurs projets au quotidien

Voir la référence de la méthode `captureWarnings` ci-dessous.

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

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

[Source](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/logging.py#L136)

Appelle la méthode `captureWarnings` de la bibliothèque de journalisation pour permettre la gestion des avertissements émis par la bibliothèque `warnings`.

En savoir plus sur cette méthode ici : https://docs.python.org/3/library/logging.html#integration-with-the-warnings-module

Tous les avertissements seront journalisés via le journal `py.warnings`.

Attention : cette méthode ajoute également un gestionnaire à ce journal s'il n'en possède pas déjà un, et met à jour le niveau de journalisation de ce journal vers le journal racine de la bibliothèque.

## Définitions de base[[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()
```

[Source](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/logging.py#L230)

Définissez la verbosité au niveau `ERROR`.

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

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

[Source](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/logging.py#L220)

Définissez la verbosité au niveau `WARNING`.

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

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

[Source](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/logging.py#L215)

Définissez la verbosité au niveau `INFO`.

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

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

[Source](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/logging.py#L225)

Définissez la verbosité au niveau `DEBUG`.

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

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

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

[Source](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/logging.py#L173)

**Retourne :** `int`

Le niveau de journalisation.

Retourne le niveau actuel du journal racine de 🤗 Transformers sous forme d'entier.

🤗 Transformers dispose des niveaux de journalisation suivants :

- 50 : `transformers.logging.CRITICAL` ou `transformers.logging.FATAL`
- 40: `transformers.logging.ERROR`
- 30 : `transformers.logging.WARNING` ou `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)
```

[Source](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/logging.py#L196)

**Paramètres :**

verbosity (`int`) : Niveau de journalisation, par exemple l'un des suivants :  - `transformers.logging.CRITICAL` ou `transformers.logging.FATAL` - `transformers.logging.ERROR` - `transformers.logging.WARNING` ou `transformers.logging.WARN` - `transformers.logging.INFO` - `transformers.logging.DEBUG`

Définissez le niveau de verbosité du journal racine de 🤗 Transformers.

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

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

[Source](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/logging.py#L159)

Retourne un journal avec le nom spécifié.

Cette fonction n'est pas censée être accédée directement, sauf si vous écrivez un module transformers personnalisé.

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

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

[Source](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/logging.py#L244)

Activer le gestionnaire par défaut du journal racine de HuggingFace Transformers.

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

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

[Source](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/logging.py#L235)

Désactiver le gestionnaire par défaut du journal racine de HuggingFace Transformers.

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

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

[Source](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/logging.py#L290)

Activer le formatage explicite pour chaque journal de HuggingFace Transformers. Le formatteur explicite est le suivant :
```
    [LEVELNAME|FILENAME|LINE NUMBER] TIME >> MESSAGE
```

Tous les gestionnaires actuellement liés à l'enregistreur racine sont affectés par cette méthode.

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

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

[Source](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/logging.py#L305)

Réinitialise la mise en forme des journalisateurs de HuggingFace Transformers.

Tous les gestionnaires actuellement liés à l'enregistreur racine sont affectés par cette méthode.

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

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

[Source](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/logging.py#L410)

Activer la barre de progression tqdm.

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

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

[Source](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/logging.py#L417)

Désactiver la barre de progression tqdm.

