이 라이브러리는 Google Ads API 상호작용을 위한 다양한 로깅을 제공합니다. 다음과 같은 정보를 캡처할 수 있습니다.
- 세부정보: API로 전송된 전체 요청 및 수신된 응답
- 간결한 요약: API 상호작용의 대략적인 개요
이러한 로깅 설정은 두 가지 방법으로 제어할 수 있습니다.
- 클라이언트 라이브러리 구성: 라이브러리의 특정
구성 옵션을
google-ads.yaml파일 또는 환경 변수에서 사용합니다. - Python을 사용한 프로그래매틱 방식: Python의 기본 제공
logging프레임워크를 사용하여 직접 제어합니다.
google-ads.yaml을 통해 구성
GoogleAdsClient 인스턴스가 초기화될 때 (예: load_from_storage를 호출할 때) 로깅이 자동으로 구성됩니다. 초기화 시 라이브러리는 다음을 수행합니다.
- 구성에서 지정된 로깅 설정을 읽습니다 구성.
- 이러한 설정을 Python의 기본 제공
logging.config.dictConfig에 전달하여 활성화합니다.
예를 들어 google-ads.yaml 파일에 logging 섹션을 추가할 수 있습니다.
logging:
version: 1
disable_existing_loggers: false
formatters:
default_fmt:
format: '[%(asctime)s - %(levelname)s] %(message).5000s'
datefmt: '%Y-%m-%d %H:%M:%S'
handlers:
default_handler:
class: logging.StreamHandler
formatter: default_fmt
loggers:
'':
handlers: [default_handler]
level: INFO
프로그래매틱 방식으로 구성
구성 파일에 logging 섹션이 없는 설치된 패키지로 라이브러리를 사용하는 경우 프로그래매틱 방식으로 애플리케이션의 로깅 설정과 로깅을 통합할 수 있습니다. `addHandler`를 사용하여 로깅 핸들러를 라이브러리의 로거
인스턴스 (google.ads.googleads.client)에 연결하고
대상 로그 수준을 설정합니다.
import logging
import sys
# Retrieve the library's logger instance.
logger = logging.getLogger("google.ads.googleads.client")
# Direct logs to standard output (stdout).
logger.addHandler(logging.StreamHandler(sys.stdout))
# Set the log level to DEBUG to view detailed messages.
logger.setLevel(logging.DEBUG)
오류 메시지 및 경고에 자주 사용되는 표준 오류 (stderr)로 로그를 전송하려면 sys.stderr를 logging.StreamHandler에 전달합니다.
import logging
import sys
logger = logging.getLogger("google.ads.googleads.client")
logger.addHandler(logging.StreamHandler(sys.stderr))
logger.setLevel(logging.WARNING)
로그 수준
클라이언트는 여러 심각도 수준에서 로그를 생성하며 로거를 구성하여 다음 중 일부 또는 전부를 확인할 수 있습니다.
| 수준 | 요청 완료 | 요청 실패함 |
|---|---|---|
DEBUG |
전체 요청 및 응답 객체가 JSON으로 포함된 상세 로그입니다. | 전체 요청 및 예외 객체가 JSON으로 포함된 상세 로그입니다. |
INFO |
특정 요청 및 응답 필드가 포함된 간결한 요약입니다. | 전체 요청 및 예외 객체가 JSON으로 포함된 상세 로그입니다. |
WARNING |
없음 | 특정 요청 정보, 예외 상태, 오류 메시지가 포함된 간결한 요약입니다. |
Python 로깅 프레임워크는 구성된 수준보다 심각도가 낮은 로그 메시지를 무시하므로 수준을 WARNING으로 설정하면 실패한 요청에 대한 간결한 메시지만 표시되는 반면 수준을 DEBUG로 설정하면 표의 모든 로그 유형이 표시됩니다.
파일에 로깅
Python에서 프로그래매틱 방식으로 또는 명령줄에서 출력을 리디렉션하여 로그를 파일에 쓸 수 있습니다.
Python에서 파일에 로깅
Python에서 로그를 파일에 직접 쓰려면 logging.FileHandler를 클라이언트 로거에 연결합니다.
import logging
logger = logging.getLogger("google.ads.googleads.client")
file_handler = logging.FileHandler("google_ads.log")
logger.addHandler(file_handler)
logger.setLevel(logging.INFO)
셸을 사용하여 출력 리디렉션
명령줄에서 get_campaigns.py와 같은 예시 스크립트를 실행할 때
운영체제의 셸을 사용하여 콘솔 로그 출력을 파일로 리디렉션할 수 있습니다.
표준 출력을 파일에 저장하려면 (기존 파일 덮어쓰기):
python get_campaigns.py -c $CUSTOMER_ID > campaign_logs.txt
표준 출력을 기존 파일에 추가하려면:
python get_campaigns.py -c $CUSTOMER_ID >> campaign_logs.txt
표준 출력과 표준 오류 (오류 및 경고)를 모두 동일한 파일에 저장하려면:
python get_campaigns.py -c $CUSTOMER_ID > all_logs.txt 2>&1
또는 Bash 4 이상:
python get_campaigns.py -c $CUSTOMER_ID &> all_logs.txt
커스텀 gRPC 인터셉터
Python 클라이언트 라이브러리는 gRPC 인터셉터를 사용하여 요청 및 응답 세부정보에 액세스 하고 로깅합니다. 커스텀 로직으로 gRPC 인터셉터를 만들어 자체 커스텀 로깅을 설정할 수 있습니다. 자세한 내용과 커스텀 로깅 인터셉터의 예는 로깅 가이드를 참고하세요.