class_docstr: Text logger of training information.
  
  Arguments
  ---------
  save_file : str
      The file to use for logging train information.
  precision : int
      Number of decimal places to display. Default 2, example: 1.35e-5.
  summary_fns : dict of str:function pairs
      Each summary function should take a list produced as output
      from a training/validation pass and summarize it to a single scalar.
docstr: See TrainLogger.log_stats()
docstr_tok: ["See","TrainLogger.log_stats","(",")"]
code: def log_stats(
      self,
      stats_meta,
      train_stats=None,
      valid_stats=None,
      test_stats=None,
      verbose=True,
  ):
      """See TrainLogger.log_stats()"""
      string_summary = self._stats_to_string(stats_meta)
      for dataset, stats in [
          ("train", train_stats),
          ("valid", valid_stats),
          ("test", test_stats),
      ]:
          if stats is not None:
              string_summary += " - " + self._stats_to_string(
                  stats, dataset
              )
  
      with open(self.save_file, "a") as fout:
          print(string_summary, file=fout)
      if verbose:
          logger.info(string_summary)
  
imports: import logging
  import torch
  import os
  from speechbrain.utils.distributed import main_process_only, if_main_process
label_desc: Use image node_id 4 for calling the FileTrainLogger obj's underlying member method code with example usage: obj.log_stats(stats_meta, train_stats, valid_stats, test_stats, verbose) without return types