class_docstr: The default monitor implementation. It uses a logger to log data and schema, and will
  write monitor data to rotating files. The schema is logged as a JSON object, and the
  data is logged as a JSON array.
class_docstr_tok: ["The","default","monitor","implementation",".","It","uses","a","logger","to","log","data","and","schema",",","and","will","write","monitor","data","to","rotating","files",".","The","schema","is","logged","as","a","JSON","object",",","and","the","data","is","logged","as","a","JSON","array","."]
code: def __init__(
      self,
      name: str,
      log_path: str,
      log_config_file: str | None = None,
      **_: t.Any,
  ) -> None:
      super().__init__(name, **_)
      self.log_config_file = log_config_file
      self.log_path = log_path
      self.data_logger = None
      self.schema_logger = None
  
file_path: BentoML/grpc-client/bentoml/_internal/monitoring/default.py
imports: from __future__ import annotations
  import collections
  import datetime
  import logging
  import logging.config
  import typing
  from pathlib import Path
  import yaml
  from ..context import component_context
  from ..context import trace_context
  from .base import MonitorBase
label_desc: Use image node_id 1 to create a new DefaultMonitor object from inherited base classes: MonitorBase with example: obj = DefaultMonitor(name, log_path, log_config_file)