Esempio n. 1
0
    def actionConsoleLogRead(self,
                             to,
                             filter=None,
                             read_size=32 * 1024,
                             limit=500):
        log_file_path = "%s/debug.log" % config.log_dir
        log_file = open(log_file_path, encoding="utf-8")
        log_file.seek(0, 2)
        end_pos = log_file.tell()
        log_file.seek(max(0, end_pos - read_size))
        if log_file.tell() != 0:
            log_file.readline()  # Partial line junk

        pos_start = log_file.tell()
        lines = []
        if filter:
            assert SafeRe.isSafePattern(filter)
            filter_re = re.compile(".*" + filter)

        for line in log_file:
            if filter and not filter_re.match(line):
                continue
            lines.append(line)

        num_found = len(lines)
        lines = lines[-limit:]

        return {
            "lines": lines,
            "pos_end": log_file.tell(),
            "pos_start": pos_start,
            "num_found": num_found
        }
Esempio n. 2
0
    def __init__(self, stream_id, ui_websocket, filter):
        self.stream_id = stream_id
        self.ui_websocket = ui_websocket

        if filter:
            if not SafeRe.isSafePattern(filter):
                raise Exception("Not a safe prex pattern")
            self.filter_re = re.compile(".*" + filter)
        else:
            self.filter_re = None
        return super(WsLogStreamer, self).__init__()