啟用 Logging

這個程式庫可為 Google Ads API 互動提供多種記錄功能。您可以擷取:

  • 詳細資訊:傳送至 API 的完整要求和收到的回應。
  • 簡潔摘要:互動的概略總覽。

您可以透過兩種方式控制這些記錄設定:

  • 用戶端程式庫設定:使用程式庫的特定設定選項。
  • 以程式輔助方式使用 Python:使用 Python 內建的記錄架構,以便直接控制。

系統會在初始化 GoogleAdsClient 例項時自動設定記錄。例如,當您使用 load_from_storage 方法時,就會發生這個初始化步驟。此時,程式庫會執行以下操作:

當這個程式庫用作已安裝的套件時,您必須將其記錄功能與應用程式的記錄設定整合。具體來說,您必須使用 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 內建的 記錄模組,以程式輔助方式變更其他記錄設定。舉例來說,如要將記錄層級變更為 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 攔截器,藉此設定自訂記錄。如需詳細資訊和自訂記錄攔截器範例,請參閱記錄指南