def save_error_log(self): """ Save last 60 screenshots in ./log/error/<timestamp> Save logs to ./log/error/<timestamp>/log.txt """ from module.base.utils import save_image 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']) save_image(image, 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): line = line.strip(' \r\t\n') if re.match('^═{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(self, image, genre, filename): """ Args: image: Image to save. genre (str): Name of sub folder. filename (str): 'xxx.png' Returns: bool: If success """ try: folder = os.path.join(str(self.config.DropRecord_SaveFolder), genre) os.makedirs(folder, exist_ok=True) file = os.path.join(folder, filename) save_image(image, file) logger.info(f'Image save success, file: {file}') return True except Exception as e: logger.exception(e) return False
def image_save(self, file): save_image(self.image, file)