in opentelemetry-exporter-gcp-logging/src/opentelemetry/exporter/cloud_logging/__init__.py [0:0]
def _set_payload_in_log_entry(log_entry: LogEntry, body: Any | None):
struct = Struct()
if isinstance(body, Mapping):
struct.update(body)
log_entry.json_payload = struct
elif isinstance(body, bytes):
json_str = body.decode("utf-8", errors="replace")
json_dict = json.loads(json_str)
if isinstance(json_dict, Mapping):
struct.update(json_dict)
log_entry.json_payload = struct
else:
log_entry.text_payload = base64.b64encode(body).decode()
else:
log_entry.text_payload = _convert_any_value_to_string(body)