PySimpleGui 中使用 logging 输出到 Output 元素中

from logging import basicConfig, INFO, info, Handler, getLogger
basicConfig(
    level=INFO,
    format='[%(asctime)s][%(levelname)s]: %(message)s',
    datefmt='%H:%M:%S',
)


class GuiLogger(Handler):
    def __init__(self, document) -> None:
        Handler.__init__(self)
        self.document = document

    def emit(self, record) -> None:
        self.document.update(value=self.document.get() + '\n' + self.format(record))

在 Window 创建完成后添加日志处理器

window = Window(
    'Test 1.0',
    self.layout,
)
getLogger().addHandler(GuiLogger(document=self.window['output']))

while True:
    event, values = self.window.read()
    if event == 'Exit' or event == WIN_CLOSED:
        break
    info('...')
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容