gpt4 book ai didi

python - 如何在pyqt中设置QThread的名称?

转载 作者:太空狗 更新时间:2023-10-29 21:53:26 25 4
gpt4 key购买 nike

我正在使用 QtCore.QThread(来自 PyQt4)。

为了记录,我还使用了以下格式化程序:

logging.Formatter('%(levelname)-8s %(asctime)s %(threadName)-15s %(message)s')

生成的日志是:

DEBUG 2012-10-01 03:59:31,479 Dummy-3 my_message

我的问题是我想更明确地知道哪个线程正在记录...Dummy-3 对我来说不是最明确的名称....

有没有办法为 QtCore.QThread 设置一个名称,日志模块可以使用它(作为 LogRecord 属性)以使日志更有意义?

谢谢!

最佳答案

如果线程模块可用,日志模块将使用threading.current_thread().name 设置threadName LogRecord 属性。

但是docs对于 threading.current_thread 来说,如果当前线程不是由线程模块创建的(因此称为“Dummy-x”名称),则将使用虚拟线程对象。

我想可以对 threading.current_thread 进行猴子修补以将名称重置为更合适的名称。但肯定更好的方法是在记录消息时使用 extra 字典:

logging.Formatter('%(levelname)-8s %(asctime)s %(qthreadname)-15s %(message)s')
...
extras = {'qthreadname': get_qthreadname()}
logging.warning(message, extra=extras)

关于python - 如何在pyqt中设置QThread的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12667103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com