mirror of
https://github.com/Grasscutters/mitmproxy.git
synced 2024-11-23 00:01:36 +00:00
limit eventstore size
This commit is contained in:
parent
a5fd4bdb82
commit
96ee3d853b
@ -5,6 +5,8 @@ import blinker
|
||||
from mitmproxy import command
|
||||
from mitmproxy.log import LogEntry
|
||||
|
||||
EVENTLOG_SIZE = 10000
|
||||
|
||||
|
||||
class EventStore:
|
||||
def __init__(self):
|
||||
@ -15,6 +17,15 @@ class EventStore:
|
||||
def log(self, entry: LogEntry) -> None:
|
||||
self.data.append(entry)
|
||||
self.sig_add.send(self, entry=entry)
|
||||
# Instead of removing one log row for every row > EVENTLOG_SIZE we add,
|
||||
# we accept an overhead of 10% and only purge then to simplify the API.
|
||||
if len(self.data) / EVENTLOG_SIZE >= 1.1:
|
||||
self.purge()
|
||||
|
||||
def purge(self):
|
||||
"""Purge event store size to EVENTLOG_SIZE"""
|
||||
self.data = self.data[len(self.data) - EVENTLOG_SIZE:]
|
||||
self.sig_refresh.send(self)
|
||||
|
||||
@command.command("eventstore.clear")
|
||||
def clear(self) -> None:
|
||||
|
@ -2,8 +2,6 @@ import urwid
|
||||
from mitmproxy.tools.console import layoutwidget
|
||||
from mitmproxy import log
|
||||
|
||||
EVENTLOG_SIZE = 10000
|
||||
|
||||
|
||||
class LogBufferWalker(urwid.SimpleListWalker):
|
||||
pass
|
||||
@ -47,8 +45,6 @@ class EventLog(urwid.ListBox, layoutwidget.LayoutWidget):
|
||||
else:
|
||||
e = urwid.Text(txt)
|
||||
self.walker.append(e)
|
||||
if len(self.walker) > EVENTLOG_SIZE:
|
||||
self.walker.pop(0)
|
||||
if self.master.options.console_focus_follow:
|
||||
self.walker.set_focus(len(self.walker) - 1)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user