# Logging

🤗 Transformersには、ライブラリの詳細度を簡単に設定できる中央集中型のロギングシステムがあります。

現在、ライブラリのデフォルトの詳細度は「WARNING」です。

詳細度を変更するには、直接設定メソッドの1つを使用するだけです。例えば、詳細度をINFOレベルに変更する方法は以下の通りです。

```python
import transformers

transformers.logging.set_verbosity_info()
```

環境変数 `TRANSFORMERS_VERBOSITY` を使用して、デフォルトの冗長性をオーバーライドすることもできます。設定できます
`debug`、`info`、`warning`、`error`、`critical` のいずれかに変更します。例えば：

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

さらに、一部の「警告」は環境変数を設定することで無効にできます。
`TRANSFORMERS_NO_ADVISORY_WARNINGS` を *1* などの true 値に設定します。これにより、次を使用してログに記録される警告が無効になります。
`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/v5.5.1/ja/main_classes/logging#transformers.utils.logging.get_verbosity) ロガーの現在の冗長レベルを取得します。
[logging.set_verbosity()](/docs/transformers/v5.5.1/ja/main_classes/logging#transformers.utils.logging.set_verbosity) を使用して、冗長性を選択したレベルに設定します。順番に（少ないものから）
冗長から最も冗長まで)、それらのレベル (括弧内は対応する int 値) は次のとおりです。

- `transformers.logging.CRITICAL` または `transformers.logging.FATAL` (int 値、50): 最も多いもののみをレポートします。
  重大なエラー。
- `transformers.logging.ERROR` (int 値、40): エラーのみを報告します。
- `transformers.logging.WARNING` または `transformers.logging.WARN` (int 値、30): エラーと
  警告。これはライブラリで使用されるデフォルトのレベルです。
- `transformers.logging.INFO` (int 値、20): エラー、警告、および基本情報をレポートします。
- `transformers.logging.DEBUG` (int 値、10): すべての情報をレポートします。

デフォルトでは、モデルのダウンロード中に「tqdm」進行状況バーが表示されます。 [logging.disable_progress_bar()](/docs/transformers/v5.5.1/ja/main_classes/logging#transformers.utils.logging.disable_progress_bar) および [logging.enable_progress_bar()](/docs/transformers/v5.5.1/ja/main_classes/logging#transformers.utils.logging.enable_progress_bar) を使用して、この動作を抑制または抑制解除できます。

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

Python には、よく組み合わせて使用​​される 2 つのロギング システムがあります。上で説明した `logging` と `warnings` です。
これにより、特定のバケット内の警告をさらに分類できます (例: 機能またはパスの`FutureWarning`)
これはすでに非推奨になっており、`DeprecationWarning`は今後の非推奨を示します。

両方とも`transformers`ライブラリで使用します。 `logging`の`captureWarning`メソッドを活用して適応させて、
これらの警告メッセージは、上記の冗長設定ツールによって管理されます。

それはライブラリの開発者にとって何を意味しますか?次のヒューリスティックを尊重する必要があります。
- `warnings`は、ライブラリおよび`transformers`に依存するライブラリの開発者に優先されるべきです。
- `logging`は、日常のプロジェクトでライブラリを使用するライブラリのエンドユーザーに使用する必要があります。

以下の`captureWarnings`メソッドのリファレンスを参照してください。

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

[Source](https://github.com/huggingface/transformers/blob/v5.5.1/src/transformers/utils/logging.py#L129)

Calls the `captureWarnings` method from the logging library to enable management of the warnings emitted by the
`warnings` library.

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

All warnings will be logged through the `py.warnings` logger.

Careful: this method also adds a handler to this logger if it does not already have one, and updates the logging
level of that logger to the library's root logger.

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

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

[Source](https://github.com/huggingface/transformers/blob/v5.5.1/src/transformers/utils/logging.py#L223)

Set the verbosity to the `ERROR` level.

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

[Source](https://github.com/huggingface/transformers/blob/v5.5.1/src/transformers/utils/logging.py#L213)

Set the verbosity to the `WARNING` level.

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

[Source](https://github.com/huggingface/transformers/blob/v5.5.1/src/transformers/utils/logging.py#L208)

Set the verbosity to the `INFO` level.

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

[Source](https://github.com/huggingface/transformers/blob/v5.5.1/src/transformers/utils/logging.py#L218)

Set the verbosity to the `DEBUG` level.

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

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

[Source](https://github.com/huggingface/transformers/blob/v5.5.1/src/transformers/utils/logging.py#L166)

Return the current level for the 🤗 Transformers's root logger as an int.

🤗 Transformers has following logging levels:

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

**Returns:**

``int``

The logging level.

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

[Source](https://github.com/huggingface/transformers/blob/v5.5.1/src/transformers/utils/logging.py#L189)

Set the verbosity level for the 🤗 Transformers's root logger.

**Parameters:**

verbosity (`int`) : Logging level, e.g., one of:  - `transformers.logging.CRITICAL` or `transformers.logging.FATAL` - `transformers.logging.ERROR` - `transformers.logging.WARNING` or `transformers.logging.WARN` - `transformers.logging.INFO` - `transformers.logging.DEBUG`

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

[Source](https://github.com/huggingface/transformers/blob/v5.5.1/src/transformers/utils/logging.py#L152)

Return a logger with the specified name.

This function is not supposed to be directly accessed unless you are writing a custom transformers module.

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

[Source](https://github.com/huggingface/transformers/blob/v5.5.1/src/transformers/utils/logging.py#L237)

Enable the default handler of the HuggingFace Transformers's root logger.

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

[Source](https://github.com/huggingface/transformers/blob/v5.5.1/src/transformers/utils/logging.py#L228)

Disable the default handler of the HuggingFace Transformers's root logger.

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

[Source](https://github.com/huggingface/transformers/blob/v5.5.1/src/transformers/utils/logging.py#L283)

Enable explicit formatting for every HuggingFace Transformers's logger. The explicit formatter is as follows:
```
    [LEVELNAME|FILENAME|LINE NUMBER] TIME >> MESSAGE
```

All handlers currently bound to the root logger are affected by this method.

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

[Source](https://github.com/huggingface/transformers/blob/v5.5.1/src/transformers/utils/logging.py#L298)

Resets the formatting for HuggingFace Transformers's loggers.

All handlers currently bound to the root logger are affected by this method.

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

[Source](https://github.com/huggingface/transformers/blob/v5.5.1/src/transformers/utils/logging.py#L403)

Enable tqdm progress bar.

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

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

Disable tqdm progress bar.

