StackDriver Logging API에서 App Engine 애플리케이션 로그를 역 직렬화하는 방법은 무엇입니까?

더스틴 잉그램

Python 3으로 마이그레이션하는 과정에서 logservice 에서 StackDriver Logging API 로 마이그레이션해야합니다 . 내가 가진 구글 클라우드 로깅이 설치, 나는 성공적으로 예와 GAE 응용 프로그램 로그를 가져올 수 있습니다 :

>>> from google.cloud.logging_v2 import LoggingServiceV2Client
>>> entries = LoggingServiceV2Client().list_log_entries(('projects/projectname',),
         filter_='resource.type="gae_app" AND protoPayload.@type="type.googleapis.com/google.appengine.logging.v1.RequestLog"')
>>> print(next(iter(entries)))
proto_payload {
  type_url: "type.googleapis.com/google.appengine.logging.v1.RequestLog"
  value: "\n\ts~brid-gy\022\0018\032R5d..."
}

이것은 필드 LogEntry에서 텍스트 응용 프로그램 로그를 얻습니다 proto_payload.value. 해당 필드를 어떻게 역 직렬화합니까? 문서에서 관련 언급을 많이 찾았지만 google.appengine.logging.v1.RequestLog올바른 아이디어 인 경우 사용할 수 있는 protobuf 생성 클래스 를 가리키는 것은 없습니다 . 누구든지 이것을 했습니까?

더스틴 잉그램

LogEntry.to_api_repr()함수를 사용 하여 LogEntry.

>>> from google.cloud.logging import Client
>>> entries = Client().list_entries(filter_="severity:DEBUG")        
>>> entry = next(iter(entries))
>>> entry.to_api_repr()
{'logName': 'projects/PROJECT_NAME/logs/cloudfunctions.googleapis.com%2Fcloud-functions'
, 'resource': {'type': 'cloud_function', 'labels': {'region': 'us-central1', 'function_name': 'tes
t', 'project_id': 'PROJECT_NAME'}}, 'labels': {'execution_id': '1zqolde6afmx'}, 'insertI
d': '000000-f629ab40-aeca-4802-a678-d513e605608e', 'severity': 'DEBUG', 'timestamp': '2019-10-24T2
1:55:14.135056Z', 'trace': 'projects/PROJECT_NAME/traces/9c5201c3061d91c2b624abb950838b4
0', 'textPayload': 'Function execution started'}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관