def run(self, command): self.config.start_time = datetime.now() try: self.device = Device(config=self.config) self.__getattribute__(command.lower())() except Exception as e: logger.exception(e) if self.config.ENABLE_ERROR_LOG_AND_SCREENSHOT_SAVE: folder = f'./log/error/{int(time.time() * 1000)}' logger.info(f'Saving error: {folder}') os.mkdir(folder) for data in logger.screenshot_deque: image_time = datetime.strftime(data['time'], '%Y-%m-%d_%H-%M-%S-%f') image = handle_sensitive_image(data['image']) image.save(f'{folder}/{image_time}.png') with open(log_file, 'r') as f: start = 0 for index, line in enumerate(f.readlines()): if re.search('\+-{15,}\+', line): start = index with open(log_file, 'r') as f: text = f.readlines()[start - 2:] text = handle_sensitive_logs(text) with open(f'{folder}/log.txt', 'w') as f: f.writelines(text)
def save_error_log(self): """ Save last 60 screenshots in ./log/error/<timestamp> Save logs to ./log/error/<timestamp>/log.txt """ from module.handler.sensitive_info import handle_sensitive_image, handle_sensitive_logs if self.config.Error_SaveError: if not os.path.exists('./log/error'): os.mkdir('./log/error') folder = f'./log/error/{int(time.time() * 1000)}' logger.warning(f'Saving error: {folder}') os.mkdir(folder) for data in self.device.screenshot_deque: image_time = datetime.strftime(data['time'], '%Y-%m-%d_%H-%M-%S-%f') image = handle_sensitive_image(data['image']) image.save(f'{folder}/{image_time}.png') with open(logger.log_file, 'r', encoding='utf-8') as f: lines = f.readlines() start = 0 for index, line in enumerate(lines): if re.search('\+-{15,}\+', line): start = index lines = lines[start - 2:] lines = handle_sensitive_logs(lines) with open(f'{folder}/log.txt', 'w', encoding='utf-8') as f: f.writelines(lines)
def save_error_log(self): """ Save last 60 screenshots in ./log/error/<timestamp> Save logs to ./log/error/<timestamp>/log.txt """ if self.config.ENABLE_ERROR_LOG_AND_SCREENSHOT_SAVE: folder = f'./log/error/{int(time.time() * 1000)}' logger.info(f'Saving error: {folder}') os.mkdir(folder) for data in logger.screenshot_deque: image_time = datetime.strftime(data['time'], '%Y-%m-%d_%H-%M-%S-%f') image = handle_sensitive_image(data['image']) image.save(f'{folder}/{image_time}.png') with open(log_file, 'r', encoding='utf-8') as f: start = 0 for index, line in enumerate(f.readlines()): if re.search('\+-{15,}\+', line): start = index with open(log_file, 'r', encoding='utf-8') as f: text = f.readlines()[start - 2:] text = handle_sensitive_logs(text) with open(f'{folder}/log.txt', 'w', encoding='utf-8') as f: f.writelines(text)