[tor-commits] [nyx/master] Replace deprecated LogBuffer

atagar at torproject.org atagar at torproject.org
Fri Oct 16 23:46:52 UTC 2020


commit 3f9950051e67c1ef38fd7799a3646308082d58b1
Author: Damian Johnson <atagar at torproject.org>
Date:   Thu Oct 15 15:45:28 2020 -0700

    Replace deprecated LogBuffer
    
    Stem 2.x drops deprecated classes. As a result we error with...
    
      Traceback (most recent call last):
        File "./run_nyx", line 7, in <module>
          import nyx
        File "/home/atagar/Desktop/nyx/nyx/__init__.py", line 779, in <module>
          import nyx.panel.log
        File "/home/atagar/Desktop/nyx/nyx/panel/log.py", line 69, in <module>
          NYX_LOGGER = log.LogBuffer(log.Runlevel.DEBUG, yield_records = True)
      AttributeError: module 'stem.util.log' has no attribute 'LogBuffer'
    
    This was removed in stem commit 76b6b49. Fortunately it's a simple class to
    replace.
---
 nyx/panel/log.py | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/nyx/panel/log.py b/nyx/panel/log.py
index 76dd20c..030be38 100644
--- a/nyx/panel/log.py
+++ b/nyx/panel/log.py
@@ -9,6 +9,9 @@ regular expressions.
 
 import functools
 import os
+import logging
+import logging.handlers
+import queue
 import time
 
 import stem.response.events
@@ -66,7 +69,10 @@ CONTENT_HEIGHT_REDRAW_THRESHOLD = 3
 # to make our LogPanel when curses initializes.
 
 stem_logger = log.get_logger()
-NYX_LOGGER = log.LogBuffer(log.Runlevel.DEBUG, yield_records = True)
+NYX_LOG_BUFFER = queue.Queue()
+
+NYX_LOGGER = logging.handlers.QueueHandler(NYX_LOG_BUFFER)
+NYX_LOGGER.setLevel(logging.DEBUG)
 stem_logger.addHandler(NYX_LOGGER)
 
 
@@ -123,8 +129,8 @@ class LogPanel(nyx.panel.DaemonPanel):
 
     # merge NYX_LOGGER into us, and listen for its future events
 
-    for event in NYX_LOGGER:
-      self._register_nyx_event(event)
+    while not NYX_LOG_BUFFER.empty():
+      self._register_nyx_event(NYX_LOG_BUFFER.get_nowait())
 
     NYX_LOGGER.emit = self._register_nyx_event
 





More information about the tor-commits mailing list