class_docstr: Simple setup for environment monitoring.
  
  Logs the following data:
  
    - Epoch statistics (console + Tensorboard format)
    - Environment events (TSV files, one per event type)
    - Trajectory data
class_docstr_tok: ["Simple","setup","for","environment","monitoring",".","Logs","the","following","data",":","-","Epoch","statistics","(","console","+","Tensorboard","format",")","-","Environment","events","(","TSV","files",",","one","per","event","type",")","-","Trajectory","data"]
docstr: :param env: The environment to monitor
  :param log_dir: Where to log the monitoring data
docstr_tok: [":","param","env",":","The","environment","to","monitor",":","param","log_dir",":","Where","to","log","the","monitoring","data"]
code: def __init__(self, env: T, log_dir: str = "."):
      """
      :param env: The environment to monitor
      :param log_dir: Where to log the monitoring data
      """
      self.env = env
      self.log_dir = log_dir
  
      # Wrap the env to enable stats, events, and trajectory data logging
      self.env = LogStatsWrapper.wrap(self.env, logging_prefix="eval")
      self.env = TrajectoryRecordingWrapper.wrap(self.env)
  
file_path: maze/maze/core/trajectory_recording/utils/monitoring_setup.py
imports: from typing import TypeVar
  from maze.core.log_events.log_events_writer_registry import LogEventsWriterRegistry
  from maze.core.log_events.log_events_writer_tsv import LogEventsWriterTSV
  from maze.core.log_stats.log_stats import register_log_stats_writer
  from maze.core.log_stats.log_stats_writer_console import LogStatsWriterConsole
  from maze.core.log_stats.log_stats_writer_tensorboard import LogStatsWriterTensorboard
  from maze.core.trajectory_recording.writers.trajectory_writer_file import TrajectoryWriterFile
  from maze.core.trajectory_recording.writers.trajectory_writer_registry import TrajectoryWriterRegistry
  from maze.core.wrappers.log_stats_wrapper import LogStatsWrapper
  from maze.core.wrappers.trajectory_recording_wrapper import TrajectoryRecordingWrapper
label_desc: Use image node_id 1 to create a new MonitoringSetup object  with example: obj = MonitoringSetup(env, log_dir)