Spaces:
Sleeping
Sleeping
| import inspect | |
| import logging as _logging | |
| import logging.handlers as handlers | |
| import os | |
| from distutils.util import strtobool | |
| from omagent_core.utils.container import container | |
| class Logger(_logging.Logger): | |
| def __init__(self): | |
| pass | |
| def init_logger( | |
| self, | |
| name, | |
| log_name, | |
| level=None, | |
| roate="midnight", | |
| backup_count=30, | |
| ): | |
| """ | |
| :param name: Name of the logger. | |
| :param log_name: Name of the log file. | |
| :param log_dir: The directory to save log files. | |
| :param level: Log level: The lowest level of log. | |
| :param Rotate: How to rotate log files. | |
| :param backup_count: How many log files to keep. | |
| """ | |
| if level is None: | |
| level = ( | |
| _logging.DEBUG if container.conductor_config.debug else _logging.INFO | |
| ) | |
| super().__init__(name, level) | |
| formatter = _logging.Formatter( | |
| "%(levelname)s | %(asctime)s | %(pathname)s:%(lineno)d | %(funcName)s | %(message)s" | |
| ) | |
| if not self.handlers: | |
| console_handler = _logging.StreamHandler() | |
| self.addHandler(console_handler) | |
| console_handler.setFormatter(formatter) | |
| def _log_with_caller_info(self, level, msg, *args, **kwargs): | |
| if self.isEnabledFor(level): | |
| frame = inspect.currentframe() | |
| outer_frames = inspect.getouterframes(frame) | |
| if len(outer_frames) > 3: | |
| calling_frame = outer_frames[3].frame | |
| self.findCaller = lambda *args: ( | |
| calling_frame.f_code.co_filename, | |
| calling_frame.f_lineno, | |
| calling_frame.f_code.co_name, | |
| None, | |
| ) | |
| self._log(level, msg, args, **kwargs) | |
| # Reset the findCaller to default after logging | |
| self.findCaller = _logging.Logger.findCaller | |
| def debug(self, msg, *args, **kwargs): | |
| self._log_with_caller_info(_logging.DEBUG, msg, *args, **kwargs) | |
| def info(self, msg, *args, **kwargs): | |
| self._log_with_caller_info(_logging.INFO, msg, *args, **kwargs) | |
| def error(self, msg, *args, **kwargs): | |
| self._log_with_caller_info(_logging.ERROR, msg, *args, **kwargs) | |
| logging = Logger() | |