我有一个模块来设置我的日志记录,我在其中定义了一个 LogHandler。在这个 LogHandler 中,我想将消息传递给从我的主 python 文件(包含我的日志记录模块的那个)创建的线程中的一个函数。我发现我可以将线程引用传递给我的日志记录模块(需要 id),但我不知道如何让它被 LogHandler 回调访问。
这是它的样子:
main.py
import WebSocket
import Log
wsthread = WebSocket()
wsthread.start() # thread manages websocket connection which can pipe data to
Log.setup() # I could pass thread here if needed
WebSocket.py
class WebSocket (threading.Thread):
def send(self, msg):
#send msg to websocket
Log.py
class Log():
@staticmethod
def setup(self):
logger = logging.getLogger("testlogger")
handler = LogHandler()
logger.addHandler(handler)
class LogHandler(logging.Handler):
def emit(self, record):
# i want to send the 'record' txt to wsthread.send(self.format(record))
在 python 中解决这个问题的正确范例是什么?