Logging を有効にする

このライブラリは、Google Ads API のインタラクションに関する汎用性の高いロギングを提供します。キャプチャできるのは次のとおりです。

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

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

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

ロギングは、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)
    

ログレベル

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

レベル Successful Request リクエストに失敗しました
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 インターセプタを作成することで、独自のカスタム ロギングを設定できます。カスタム ロギング インターセプタの詳細と例については、ロギング ガイドをご覧ください。