class_docstr: Supports logging to trial-specific `Logger` classes.
  
  Previously, Ray Tune logging was handled via `Logger` classes that have
  been instantiated per-trial. This callback is a fallback to these
  `Logger`-classes, instantiating each `Logger` class for each trial
  and logging to them.
  
  Args:
      logger_classes: Logger classes that should
          be instantiated for each trial.
class_docstr_tok: ["Supports","logging","to","trial-specific","`","Logger","`","classes",".","Previously",",","Ray","Tune","logging","was","handled","via","`","Logger","`","classes","that","have","been","instantiated","per-trial",".","This","callback","is","a","fallback","to","these","`","Logger","`","-classes",",","instantiating","each","`","Logger","`","class","for","each","trial","and","logging","to","them",".","Args",":","logger_classes",":","Logger","classes","that","should","be","instantiated","for","each","trial","."]
code: def log_trial_save(self, trial: "Trial"):
      for (
          logger_class,
          trial_loggers,
      ) in self._class_trial_loggers.items():
          if trial in trial_loggers:
              trial_loggers[trial].flush()
  
imports: import abc
  import json
  import logging
  import os
  import pyarrow
  from typing import TYPE_CHECKING, Dict, Iterable, List, Optional, Set, Type
  import yaml
  from ray.air._internal.json import SafeFallbackEncoder
  from ray.tune.callback import Callback
  from ray.util.annotations import Deprecated, DeveloperAPI, PublicAPI
label_desc: Use image node_id 4 for calling the LegacyLoggerCallback obj's underlying member method code with example usage: obj.log_trial_save(trial) without return types