Skip to content

Commit

Permalink
New clear and flush to file support in memory logger
Browse files Browse the repository at this point in the history
  • Loading branch information
joamag committed Mar 5, 2020
1 parent 8bd8180 commit 8d80750
Showing 1 changed file with 15 additions and 0 deletions.
15 changes: 15 additions & 0 deletions src/quorum/log.py
Expand Up @@ -190,6 +190,10 @@ def emit(self, record):
messages_s = len(_messages_l)
if messages_s > self.max_length: _messages_l.pop()

def clear(self):
self.messages = collections.deque()
self.messages_l = dict()

def get_latest(self, count = None, level = None):
count = count or 100
is_level = level and not legacy.is_string(level)
Expand All @@ -200,6 +204,17 @@ def get_latest(self, count = None, level = None):
slice = itertools.islice(messages, 0, count)
return list(slice)

def flush_to_file(self, path, count = None, level = None, clear = True):
messages = self.get_latest(level = level, count = count or 65536)
if not messages: return
file = open(path, "wb")
try:
for message in messages:
file.write(message + "\n")
finally:
file.close()
if clear: self.clear()

class BaseFormatter(logging.Formatter):
"""
The base Quorum logging formatted used to add some extra
Expand Down

0 comments on commit 8d80750

Please sign in to comment.