すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:ログの有効化 (Python SDK V1)

最終更新日:Nov 29, 2025

Python SDK は、トラブルシューティングを容易にするためのログ記録機能を提供します。この機能はデフォルトで無効になっています。

説明

Python SDK のログ記録機能には、Python SDK バージョン 2.6.x 以降が必要です。

背景情報

Python SDK のログ記録機能は、さまざまな OSS 操作のログを収集し、ローカルのログファイルに保存します。

  • ログフォーマット: <time><name><level><threadId><message>

  • ログレベル: CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET

    説明

    ログレベルを指定すると、ローカルのログファイルには、そのレベル以上のすべてのログが記録されます。たとえば、ログレベルを INFO に設定した場合、ログファイルには CRITICAL、ERROR、WARNING、INFO レベルのログが記録されます。

注意事項

  • このトピックでは、中国 (杭州) リージョンのパブリックエンドポイントを使用します。OSS と同じリージョンにある他の Alibaba Cloud サービスから OSS にアクセスする場合は、内部エンドポイントを使用します。OSS のリージョンとエンドポイントの詳細については、「リージョンとエンドポイント」をご参照ください。

  • このトピックでは、OSS エンドポイントを使用して OSSClient インスタンスを作成します。カスタムドメイン名または Security Token Service (STS) を使用して OSSClient インスタンスを作成する場合は、「初期化」をご参照ください。

Python SDK のログ記録の有効化

次のコードは、Python ソフトウェア開発キット (SDK) のログ記録を有効にします。

# -*- coding: utf-8 -*-

import os
import logging
import oss2
from itertools import islice
from oss2.credentials import EnvironmentVariableCredentialsProvider

# ログ情報をローカルログファイルにダウンロードし、指定されたローカルパスに保存します。
# 完全なパスを指定せず、examplelogfile.log のようなファイル名のみを指定した場合、ログファイルはデフォルトでプロジェクトのルートフォルダーに保存されます。
log_file_path = "D:\\localpath\\examplelogfile.log"

# ログ記録を有効にします。
oss2.set_file_logger(log_file_path, 'oss2', logging.INFO)

# 環境変数からアクセス認証情報を取得します。このコードを実行する前に、環境変数 OSS_ACCESS_KEY_ID と OSS_ACCESS_KEY_SECRET が設定されていることを確認してください。
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())

# バケットが配置されているリージョンに対応するエンドポイントを設定します。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# エンドポイントに対応するリージョン (cn-hangzhou など) を指定します。注意:このパラメーターは V4 署名に必須です。
region = "cn-hangzhou"

# examplebucket を実際のバケット名に置き換えます。
bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)

# ファイルディレクトリを走査します。
for b in islice(oss2.ObjectIterator(bucket), 10):
    print(b.key)
# ファイルメタデータを取得します。
# オブジェクトの完全なパス (例: exampledir/exampleobject.txt) を指定します。完全なパスにバケット名を含めることはできません。
object_meta = bucket.get_object_meta('exampledir/exampleobject.txt')

以下はログ出力の例です:

説明

より詳細なログを取得するには、ログレベルを DEBUG に変更してください。

2018-11-20 16:37:46,437 oss2.api [INFO] 26716 : Exception: {
    'status': 404, 
    'x-oss-request-id': '5BF3C7DA236B3A201CE64679', 
    'details': {
        'HostId': 'examplebucket.oss-cn-shenzhen.aliyuncs.com', 
        'Message': 'The specified key does not exist.', 
        'Code': 'NoSuchKey', 
        'RequestId': '5BF3C7DA236B3A201CE64679', 
        'Key': 'exampledir/exampleobject.txt'
    }
}

ログは、リクエストされたオブジェクトが存在しないために NoSuchKey エラーが発生したことを示しています。