class_docstr: Base class for loggers.
  
  Strategy loggers receive MetricValues from the Evaluation plugin and
  decide when and how to log them. MetricValues are processed
  by default using `log_metric` and `log_single_metric`.
  
  Additionally, loggers may implement any callback's handlers supported by
  the plugin's system of the template in use, which will be called
  automatically during the template's execution.
  This allows to control when the logging happen and how. For example,
  interactive loggers typically prints at the end of an
  epoch/experience/stream.
  
  Each child class should implement the `log_single_metric` method, which
  logs a single MetricValue.
code: def __init__(self):
      super().__init__()
  
      if not DistributedHelper.is_main_process:
          raise RuntimeError(
              "You are creating a logger in a non-main process during a "
              "distributed training session. "
              "Jump to this error for an example on how to fix this."
          )
  
file_path: avalanche/avalanche/logging/base_logger.py
imports: from abc import ABC
  from typing import TYPE_CHECKING, List
  from avalanche.distributed.distributed_helper import DistributedHelper
label_desc: Use image node_id 1 to create a new BaseLogger object from inherited base classes: ABC with example: obj = BaseLogger()