Repository: Lightning-AI/pytorch-lightning
File: pytorch_lightning/loggers/base.py (Python)

Code before:
            logger.log_metrics(metrics, step)

    def log_hyperparams(self, params: Union[Dict[str, Any], Namespace]) -> None:
        for logger in self._logger_iterable:
            logger.log_hyperparams(params)

    def log_graph(self, model: "pl.LightningModule", input_array=None) -> None:
        for logger in self._logger_iterable:
            logger.log_graph(model, input_array)

    def save(self) -> None:
        for logger in self._logger_iterable:
            logger.save()

    def finalize(self, status: str) -> None:
        for logger in self._logger_iterable:
            logger.finalize(status)

    def close(self) -> None:
        for logger in self._logger_iterable:
            logger.close()

    @property
    def save_dir(self) -> Optional[str]:
        """
        Returns `None` as checkpoints should be saved to default / chosen location when using multiple loggers
        """
        # Checkpoints should be saved to default / chosen location when using multiple loggers
        return None

    @property
    def name(self) -> str:
        """
        Returns the experiment names for all the loggers in the logger collection joined by an underscore
        """
        return "_".join(str(logger.name) for logger in self._logger_iterable)

    @property
    def version(self) -> str:
        """
        Returns the experiment versions for all the loggers in the logger collection joined by an underscore
        """
        return "_".join(str(logger.version) for logger in self._logger_iterable)


class DummyExperiment:
    """Dummy experiment"""

    def nop(self, *args, **kw):
        pass


Review comment (suggestion):
```suggestion
        Returns ``None`` as checkpoints should be saved to default / chosen location when using multiple loggers.
```

Code after:
            logger.log_metrics(metrics, step)

    def log_hyperparams(self, params: Union[Dict[str, Any], Namespace]) -> None:
        for logger in self._logger_iterable:
            logger.log_hyperparams(params)

    def log_graph(self, model: "pl.LightningModule", input_array=None) -> None:
        for logger in self._logger_iterable:
            logger.log_graph(model, input_array)

    def save(self) -> None:
        for logger in self._logger_iterable:
            logger.save()

    def finalize(self, status: str) -> None:
        for logger in self._logger_iterable:
            logger.finalize(status)

    def close(self) -> None:
        for logger in self._logger_iterable:
            logger.close()

    @property
    def save_dir(self) -> Optional[str]:
        """
        Returns ``None`` as checkpoints should be saved to default / chosen location when using multiple loggers.
        """
        # Checkpoints should be saved to default / chosen location when using multiple loggers
        return None

    @property
    def name(self) -> str:
        """
        Returns the experiment names for all the loggers in the logger collection joined by an underscore.
        """
        return "_".join(str(logger.name) for logger in self._logger_iterable)

    @property
    def version(self) -> str:
        """
        Returns the experiment versions for all the loggers in the logger collection joined by an underscore.
        """
        return "_".join(str(logger.version) for logger in self._logger_iterable)


class DummyExperiment:
    """Dummy experiment"""

    def nop(self, *args, **kw):
        pass