Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
 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)
Exemplo n.º 3
0
 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)