<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def log_cert_info(logger, msg_str, cert_obj):
 """Dump basic certificate values to the log. Args: logger: Logger Logger to which to write the certificate values. msg_str: str A message to write to the log before the certificate values. cert_obj: cryptography.Certificate Certificate containing values to log. Returns: None """

    list(
        map(
            logger,
            ["{}:".format(msg_str)]
            + [
                "  {}".format(v)
                for v in [
                    "Subject: {}".format(
                        _get_val_str(cert_obj, ["subject", "value"], reverse=True)
                    ),
                    "Issuer: {}".format(
                        _get_val_str(cert_obj, ["issuer", "value"], reverse=True)
                    ),
                    "Not Valid Before: {}".format(
                        cert_obj.not_valid_before.isoformat()
                    ),
                    "Not Valid After: {}".format(cert_obj.not_valid_after.isoformat()),
                    "Subject Alt Names: {}".format(
                        _get_ext_val_str(
                            cert_obj, "SUBJECT_ALTERNATIVE_NAME", ["value", "value"]
                        )
                    ),
                    "CRL Distribution Points: {}".format(
                        _get_ext_val_str(
                            cert_obj,
                            "CRL_DISTRIBUTION_POINTS",
                            ["value", "full_name", "value", "value"],
                        )
                    ),
                    "Authority Access Location: {}".format(
                        extract_issuer_ca_cert_url(cert_obj) or "<not found>"
                    ),
                ]
            ],
        )
    )