code: def _log_config_on_step(self, trial_state, new_state, trial,
                              trial_to_clone, new_config):
          
          trial_name, trial_to_clone_name = (trial_state.orig_tag,
                                             new_state.orig_tag)
          trial_id = "".join(itertools.takewhile(str.isdigit, trial_name))
          trial_to_clone_id = "".join(
              itertools.takewhile(str.isdigit, trial_to_clone_name))
          trial_path = os.path.join(trial.local_dir,
                                    "pbt_policy_" + trial_id + ".txt")
          trial_to_clone_path = os.path.join(
              trial_to_clone.local_dir,
              "pbt_policy_" + trial_to_clone_id + ".txt")
          policy = [
              trial_name, trial_to_clone_name,
              trial.last_result[TRAINING_ITERATION],
              trial_to_clone.last_result[TRAINING_ITERATION],
              trial_to_clone.config, new_config
          ]
          # Log to global file.
          with open(os.path.join(trial.local_dir, "pbt_global.txt"), "a+") as f:
              f.write(json.dumps(policy) + "\n")
          # Overwrite state in target trial from trial_to_clone.
          if os.path.exists(trial_to_clone_path):
              shutil.copyfile(trial_to_clone_path, trial_path)
          # Log new exploit in target trial log.
          with open(trial_path, "a+") as f:
              f.write(json.dumps(policy) + "\n")
docs: Logs transition during exploit/exploit step.
  
          For each step, logs: [target trial tag, clone trial tag, target trial
          iteration, clone trial iteration, old config, new config].