Logging を有効にする

このライブラリは、Google 広告 API のインタラクションの多彩なロギングを提供します。キャプチャできる内容は次のとおりです。

  • 詳細情報: API に送信された完全なリクエストと受信したレスポンス。
  • 簡潔な要約: インタラクションの概要。

これらのロギング設定は、次の 2 つの方法で制御できます。

  • クライアント ライブラリの構成: ライブラリ固有の構成オプションを使用します。
  • Python によるプログラムによる方法: Python の組み込みのロギング フレームワークを使用して、より直接的に制御します。

ロギングは、GoogleAdsClient インスタンスが初期化されると自動的に構成されます。この初期化ステップは、load_from_storage メソッドを使用する場合などに行われます。この時点で、ライブラリは次のことを行います。

  • 指定したロギング設定を構成から読み取ります。
  • これらの設定を Python の組み込み logging.config.dictConfig に渡して有効にします。

このライブラリをインストール済みパッケージとして使用する場合は、そのロギングをアプリケーションのロギング設定と統合する必要があります。具体的には、addHandler メソッドを使用して、ライブラリ独自のロガー インスタンスにロギング ハンドラを追加する必要があります。このハンドラは、ライブラリのログ メッセージの転送先(コンソール、ファイルなど)を指定します。これを行うには、まず次のようにライブラリのロガー インスタンスを取得します。

import logging

logger = logging.getLogger('google.ads.googleads.client')

ライブラリのロガーを取得したら、ログ メッセージを出力する場所を指定できます。

  • コンソールにログを送信する: コンソールにログ メッセージを表示するには、基本的なハンドラを追加します。ログを標準出力(stdout)に転送する方法は次のとおりです。

    ロガーに stdout に出力するよう指示する基本的なハンドラを設定する方法は次のとおりです。

    import sys
    
    # Assuming 'logger' was retrieved as per previous instructions
    logger.addHandler(logging.StreamHandler(sys.stdout))
    

    エラー メッセージと警告によく使用される標準エラー(stderr)にログを送信する場合:

    import sys
    
    # Assuming 'logger' was retrieved as per previous instructions
    logger.addHandler(logging.StreamHandler(sys.stderr))
    
  • ロギング設定の他の設定をプログラムで構成する: ロガー オブジェクトを取得したら、Python の組み込みの logging モジュールを使用して、他のロギング設定をプログラムで変更することもできます。たとえば、ロギング レベルを DEBUG に変更して、より詳細なメッセージを表示するには、次のようにします。

    logger.setLevel(logging.DEBUG)
    

ログレベル

クライアントはいくつかの異なるレベルでログを生成します。構成を設定すると、以下の一部またはすべてを確認できます。

レベル リクエストの成功 リクエストに失敗しました
DEBUG 完全なリクエスト オブジェクトとレスポンス オブジェクトが JSON として含まれる詳細なログ。 リクエストと例外オブジェクトが JSON として含まれる詳細なログ。
INFO 特定のリクエスト フィールドとレスポンス フィールドを含む簡潔な概要。 リクエストと例外オブジェクトが JSON として含まれる詳細なログ。
WARNING なし 特定のリクエスト情報、例外の状態、メッセージを含む簡潔な概要。

Python ロギング フレームワークは、構成されたレベルよりも重大度が低いログメッセージを無視するため、WARNING に設定すると、失敗したリクエストに関連する簡潔なメッセージのみが表示されます。DEBUG に設定すると、上記の表に示すすべてのタイプのログが表示されます。

ファイルへのロギング

コマンドラインから get_campaigns.py などのサンプル スクリプトを実行すると、通常はコンソールに出力されるログ メッセージをファイルにリダイレクト(または「パイプ」)できます。これは、Python ライブラリ自体ではなく、オペレーティング システムのシェルの機能です。手順は次のとおりです。

標準出力(ほとんどのログ)をファイルに保存(上書き)するには:

python get_campaigns.py -c $CLIENT_ID > campaign_logs.txt

標準出力をファイルに追加するには:

python get_campaigns.py -c $CLIENT_ID >> campaign_logs.txt

標準出力と標準エラー(エラー/警告)の両方を同じファイルに保存するには:

python get_campaigns.py -c $CLIENT_ID > all_logs.txt 2>&1

(または、Bash 4 以降などの最新のシェルを使用している場合):

python get_campaigns.py -c $CLIENT_ID &> all_logs.txt

ロギング インターセプタ

Python クライアント ライブラリは、gRPC インターセプタを使用してリクエストとレスポンスの詳細にアクセスし、ログに記録します。カスタム ロジックを使用して gRPC インターセプタを作成することで、独自のカスタム ロギングを設定できます。カスタム ロギング インターセプタの詳細と例については、ロギング ガイドをご覧ください。