[tor-commits] [stem/master] Option for LogBuffer to provide log records

atagar at torproject.org atagar at torproject.org
Wed May 6 16:12:27 UTC 2015


commit df3ce4331baaa80162939ed947ee23cd9c64fa11
Author: Damian Johnson <atagar at torproject.org>
Date:   Mon Apr 27 08:52:14 2015 -0700

    Option for LogBuffer to provide log records
    
    Option we need for nyx. With this the LogBuffer can either provide back strings
    or the log events they're based on.
---
 stem/util/log.py |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/stem/util/log.py b/stem/util/log.py
index 885e68e..85bcd0f 100644
--- a/stem/util/log.py
+++ b/stem/util/log.py
@@ -200,7 +200,7 @@ class LogBuffer(logging.Handler):
   read later. Log entries are cleared as they are read.
   """
 
-  def __init__(self, runlevel):
+  def __init__(self, runlevel, yield_records = False):
     # TODO: At least in python 2.6 logging.Handler has a bug in that it doesn't
     # extend object, causing our super() call to fail. When we drop python 2.6
     # support we should switch back to using super() instead.
@@ -214,13 +214,15 @@ class LogBuffer(logging.Handler):
       datefmt = '%m/%d/%Y %H:%M:%S')
 
     self._buffer = []
+    self._yield_records = yield_records
 
   def is_empty(self):
     return not bool(self._buffer)
 
   def __iter__(self):
     while self._buffer:
-      yield self.formatter.format(self._buffer.pop(0))
+      record = self._buffer.pop(0)
+      yield record if self._yield_records else self.formatter.format(record)
 
   def emit(self, record):
     self._buffer.append(record)





More information about the tor-commits mailing list