def log_metric()

in src/smexperiments/metrics.py [0:0]


    def log_metric(self, metric_name, value, timestamp=None, iteration_number=None):
        """Write a metric to file.

        Args:
            metric_name (str): The name of the metric.
            value (str): The value of the metric.
            timestamp (datetime): Timestamp of the metric.
            iteration_number (int):  Iteration number of the metric.

        Raises:
            SageMakerMetricsWriterException: If the metrics file is closed.
            AttributeError: If file has been initialized and the writer hasn't been closed.
        """
        raw_metric_data = _RawMetricData(
            metric_name=metric_name, value=value, timestamp=timestamp, iteration_number=iteration_number
        )
        try:
            logging.debug("Writing metric: %s", raw_metric_data)
            self._file.write(json.dumps(raw_metric_data.to_record()))
            self._file.write("\n")
        except AttributeError:
            if self._closed:
                raise SageMakerMetricsWriterException("log_metric called on a closed writer")
            elif not self._file:
                self._file = open(self._get_metrics_file_path(), "a", buffering=1)
                self._file.write(json.dumps(raw_metric_data.to_record()))
                self._file.write("\n")
            else:
                raise