> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/reference/ja/purattofmu/python-sdk/logging-and-debugging.md).

# ログ記録とデバッグ

SDK が予期しない動作をしたとき、理由を突き止める最短の方法は、通常、その背後にある HTTP リクエストとレスポンスを見ることです。

## 詳細なリクエストログを有効にする

SDK は Python の標準の `logging` モジュールと `requests` ライブラリを内部で使用しています。SDK が送るすべての HTTP リクエストを確認するには:

```python
import logging
import http.client as http_client

http_client.HTTPConnection.debuglevel = 1
logging.basicConfig(level=logging.DEBUG)
logging.getLogger("urllib3").setLevel(logging.DEBUG)
logging.getLogger("urllib3").propagate = True
```

これにより、各リクエスト行、ヘッダー（SDK が伏せている箇所は伏せたまま）、およびレスポンスのステータスが出力されます。これを有効にして SDK を 1 回呼び出せば、送信内容を正確に確認できます。

## 失敗した 1 回の呼び出しを確認する

グローバルなロギングを有効にせずに 1 回の呼び出しを確認したい場合は、直接アダプターに入ってください。〜上のすべての高レベルメソッドは `ワークスペース` / `プロジェクト` / `バージョン` 最終的には `roboflow.adapters.rfapi` (または `deploymentapi`, `vision_events_api`の関数を呼び出します。); それらを直接呼び出すと、生のレスポンスが返り、高レベルメソッドが行う後処理はすべてスキップされます:

```python
from roboflow.adapters import rfapi

response = rfapi.get_workflow("YOUR_API_KEY", workspace_url="my-workspace", workflow_url="slow-webhooks")
print(response)
```

高レベルの呼び出しが例外を発生させた場合でも、同じアダプター呼び出しは通常、 `RoboflowError` を送出します。その文字列はサーバーの応答本文をそのまま表したもので、高レベルメソッドがラップする可能性のある bad request エラーの診断に役立ちます。

## よくあるエラー

### `RoboflowError: 401`

認証失敗。次のいずれかです:

* `ROBOFLOW_API_KEY` が設定されていない、または
* に渡されたキーが `Roboflow(api_key=...)` が間違っている、または
* キーは有効だが、操作に必要なスコープを持っていない。参照: [スコープ付き API キー](/reference/ja/ren-zheng/authentication/scoped-api-keys.md).

### `RoboflowError: 404`

リソースが見つかりません。ワークスペース / プロジェクト / バージョン のスラッグが Web アプリの URL バーにあるものと一致するか確認してください。スラッグは表示名と必ずしも一致せず、SDK は全体でスラッグを使用します。

### `RoboflowError: 423 Locked`

ワークスペースは請求停止状態です。Web アプリの請求ページで解決するか、サポートに連絡してください。

### `RuntimeError` から `restore()`

この項目は現在ゴミ箱にありません。すでに 30 日の保持期間後に完全に削除されたか、まだワークスペースで有効なままです。

### アップロードが遅い場合

`Workspace.upload_dataset()` のデフォルトは `num_workers=10`です。大きなデータセットでは、これを増やしてください（最大でもおよそ 25 まで。それを超えるとスロットリングされたレスポンスが返り始めます）。逆に、ネットワークが制約されている場合や共有インフラの場合は、減らしてください。

### `ImportError` での `roboflow-slim`

`roboflow-slim` は Pillow、NumPy、OpenCV、Matplotlib を含みません。もし `roboflow.models.*` からインポートするか、 `.predict(...).save(...)`形式の可視化ヘルパーを呼び出す場合は、完全版の `roboflow` パッケージをインストールしてください。

## ソースのどこを確認するか

スタックトレースが `roboflow.core.workspace.py` または `roboflow.adapters.rfapi`、その [GitHub ソース](https://github.com/roboflow/roboflow-python) を指している場合は検索可能で、メソッドは短いです。メソッドの正確なシグネチャについては、アダプターの docstring が信頼できる唯一の情報源です。

## バグを報告する

で issue を開く際は [github.com/roboflow/roboflow-python](https://github.com/roboflow/roboflow-python/issues)に、次を含めてください:

* `roboflow.__version__`
* 使用している Python のバージョン
* 最小限の再現手順（API キーは伏せたもの）
* 完全なトレースバック、または上記で説明した詳細ログの出力

HTTP リクエスト / レスポンスを含む issue は通常 1 回のやり取りで修正できますが、含まれていない issue は、それらを集めるために追加のやり取りが必要になることがよくあります。
