Path: blob/master/ invest-robot-contest_TradingCompetition2022-main/logger/TechLogger.py
5925 views
from logger.Logger import Logger, LogData1from datetime import datetime234class TechLogger(Logger):5"""6Singleton Class for tech logger7Collect all tech event8"""910_LOGGER_INSTANCE = None1112__BEFORE_METHOD = "BEFORE_METHOD"13__AFTER_METHOD = "AFTER_METHOD"14__METHOD_NAME = "METHOD_NAME"15__INPUT_ARGS = 'INPUT_ARGS'16__INPUT_KWARGS = 'INPUT_KWARGS'1718@classmethod19def get_logger_instance(cls):20if cls._LOGGER_INSTANCE is None:21cls._LOGGER_INSTANCE = TechLogger()22return cls._LOGGER_INSTANCE2324def __init__(self, conf_name_print_mode=None):25if conf_name_print_mode is None:26conf_name_print_mode = 'print_tech_log'27super().__init__(conf_name_print_mode)2829def log_before_method(self, fn, *args, **kwargs):30""" Before method started"""31self.add_log(log_line_dict=LogData(event_id=self.__BEFORE_METHOD,32datetime=datetime.today().now(),33key=self.__METHOD_NAME, value=fn))34for i in args:35self.add_log(log_line_dict=LogData(event_id=self.__BEFORE_METHOD,36datetime=datetime.today().now(),37key=self.__INPUT_ARGS, value=str(i)))38for i in kwargs:39self.add_log(log_line_dict=LogData(event_id=self.__BEFORE_METHOD,40datetime=datetime.today().now(),41key=i, value=str(kwargs[i])))4243def log_after_method(self, fn):44""" After method started"""45self.add_log(log_line_dict=LogData(event_id=self.__AFTER_METHOD,46datetime=datetime.today().now(),47key=self.__METHOD_NAME, value=fn))4849def add_except(self, except_obj):50log_data = LogData(event_id='EXCEPT', key=except_obj.code, value=except_obj, datetime=datetime.now())51self.add_log(log_data)525354