class_docstr: Logger class
class_docstr_tok: ["Logger","class"]
docstr: Log a message
docstr_tok: ["Log","a","message"]
code: def log(self, message: str, level: int = logging.INFO):
      """Log a message"""
  
      if level == logging.INFO:
          self._logger.info(message)
      elif level == logging.WARNING:
          self._logger.warning(message)
      elif level == logging.ERROR:
          self._logger.error(message)
      elif level == logging.CRITICAL:
          self._logger.critical(message)
  
      self._logs.append(
          {
              "msg": message,
              "level": logging.getLevelName(level),
              "time": self._calculate_time_diff(),
              "source": self._invoked_from(),
          }
      )
  
file_path: pandas-ai/pandasai/helpers/logger.py
imports: import inspect
  import time
  import sys
  from typing import List
  import logging
  from .path import find_closest
  from pydantic import BaseModel
label_desc: Use image node_id 2 for calling the Logger obj's underlying member method code with example usage: obj.log(message, level) without return types