import traceback class LoggerInterface: def __init__(self): self.initialized = False def __init__(self,ad_api, default_log = "main_log",mute = False): self.initialize_logger_interface(ad_api,default_log,mute) def initialize_logger_interface(self,ad_api, default_log = "main_log",mute = False): self.ad_api = ad_api self.default_log = default_log self.mute = False self.initialized = True def mute_logger(self,mute : bool): if mute: self.ad_api.log("Muting logger",level = "INFO", log = self.default_log) self.mute = bool(mute) def log_info(self,message): assert self.initialized if not self.mute: self.ad_api.log(message,level = "INFO", log = self.default_log) def log_warning(self,message): assert self.initialized self.ad_api.log(message,level = "WARNING", log = self.default_log) def log_error(self,message,stop_app = False,dump_stack = False): assert self.initialized if dump_stack: stack = "\n" for line in traceback.format_stack()[:-1]: stack += line.strip() + '\n' else: stack = "" self.ad_api.log(message,level = "ERROR", log = self.default_log) self.ad_api.log(message + stack,level = "ERROR", log = "error_log") if stop_app: self.stop_app(self.name)