且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何将记录器输出重定向到 PyQt 文本小部件

更新时间:2023-11-14 18:03:46

You can create a custom logging.Handler and add it to your logger:

import logging
logger = logging.getLogger(__name__)

class QtHandler(logging.Handler):

    def __init__(self):
        logging.Handler.__init__(self)

    def emit(self, record):
        record = self.format(record)
        XStream.stdout().write("{}\n".format(record))

handler = QtHandler()
handler.setFormatter(logging.Formatter("%(levelname)s: %(message)s"))
logger.addHandler(handler)
logger.setLevel(logging.DEBUG)

Then remove the logging.basisConfig(level=logging.DEBUG) line in the if __name__ == "__main__": block. You'll see your log messages only appear in your dialog box.