로깅

다양한 방법으로 Google Ads API와의 상호작용을 기록하도록 라이브러리를 구성할 수 있습니다. 자세한 요청 및 응답은 물론 보다 간결한 요약 메시지도 로깅할 수 있습니다. 이러한 설정은 클라이언트 라이브러리 구성에서 관리합니다. 다음은 사용 가능한 여러 유형의 구성 옵션에 관한 세부정보입니다.

라이브러리는 기본적으로 Python의 기본 제공 로깅 프레임워크를 사용하고 로그를 stderr에 사용합니다. 포함된 경우 구성에 정의된 logging 객체가 dictlogging.config.dictConfig에 직접 전달됩니다.

클라이언트를 초기화하기 전에 로깅 구성을 설정하여 로깅을 프로그래매틱 방식으로 구성할 수도 있습니다. 클라이언트 로거 인스턴스를 검색하고 다음 예를 사용하여 구성할 수 있습니다.

import logging
logging.basicConfig(level=logging.INFO, format='[%(asctime)s - %(levelname)s] %(message).5000s')
logging.getLogger('google.ads.googleads.client').setLevel(logging.INFO)

클라이언트가 초기화될 때 클라이언트 로거가 구성됩니다. 이후의 로깅 구성 변경사항은 무시됩니다. YAML 파일에서 로깅 구성을 프로그래매틱 방식으로 재정의하려면 클라이언트를 초기화하기 전에 위의 줄을 호출해야 합니다.

로그 수준

클라이언트는 몇 가지 수준에서 로그를 생성하며, 아래의 일부 또는 전체를 표시하도록 구성을 설정할 수 있습니다.

수준 요청 성공 실패한 요청
DEBUG JSON 형식의 전체 요청 및 응답 객체가 포함된 자세한 로그입니다. JSON 형식의 전체 요청 및 예외 객체가 있는 자세한 로그입니다.
INFO 특정 요청 및 응답 필드가 포함된 간결한 요약입니다. JSON 형식의 전체 요청 및 예외 객체가 있는 자세한 로그입니다.
WARNING 없음 특정 요청 정보, 예외 상태, 메시지가 포함된 간결한 요약입니다.

Python 로깅 프레임워크는 구성된 수준보다 덜 심각한 로그 메시지를 무시하므로 WARNING로 설정하면 실패한 요청과 관련된 간결한 메시지만 표시되지만, DEBUG로 설정하면 위 표에 가능한 모든 유형의 로그가 표시됩니다.

파일에 로깅 중

예를 들어 get_campaigns를 실행하는 경우 다음과 같이 로그 메시지를 파일로 쉽게 파이핑할 수 있습니다.

python get_campaigns.py -c $CLIENT_ID 2> example.log

로깅 인터셉터

Python 클라이언트 라이브러리는 gRPC 인셉터를 사용하여 요청 및 응답 세부정보에 액세스하고 로깅합니다. 커스텀 로직으로 gRPC 인터셉터를 만들어 자체 커스텀 로깅을 설정할 수 있습니다. 커스텀 로깅 인터셉터의 자세한 내용과 예는 Logging 가이드를 참조하세요.