def _set_payload_in_log_entry()

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)