class_docstr: Logs trial results in json format.
  
  Also writes to a results file and param.json file when results or
  configurations are updated. Experiments must be executed with the
  JsonLoggerCallback to be compatible with the ExperimentAnalysis tool.
code: def log_trial_start(self, trial: "Trial"):
      if trial in self._trial_files:
          self._trial_files[trial].close()
  
      # Update config
      self.update_config(trial, trial.config)
  
      # Make sure logdir exists
      trial.init_local_path()
      local_file = os.path.join(trial.local_path, EXPR_RESULT_FILE)
  
      # Resume the file from remote storage.
      self._restore_from_remote(EXPR_RESULT_FILE, trial)
  
      self._trial_files[trial] = open(local_file, "at")
  
imports: import json
  import logging
  import numpy
  import os
  from typing import TYPE_CHECKING, Dict, TextIO
  from ray.air.constants import EXPR_PARAM_FILE, EXPR_PARAM_PICKLE_FILE, EXPR_RESULT_FILE
  import ray.cloudpickle
  from ray.tune.logger.logger import _LOGGER_DEPRECATION_WARNING, Logger, LoggerCallback
  from ray.tune.utils.util import SafeFallbackEncoder
  from ray.util.annotations import Deprecated, PublicAPI
label_desc: Use image node_id 2 for calling the JsonLoggerCallback obj's underlying member method code with example usage: obj.log_trial_start(trial) without return types