gpt4 book ai didi

Python日志记录,如何将信息写入2个单独的

转载 作者:太空宇宙 更新时间:2023-11-03 15:08:41 24 4
gpt4 key购买 nike

我正在尝试登录到不同的 StringIO。我希望每个记录器都会写入实例化并给予的每个 StringIO。但这不起作用,只有第一个 StringIO 存储记录的信息。对我缺少的内容有什么建议吗?

    import logging
from StringIO import StringIO
formatter = logging.Formatter('%(asctime)s %(name)-3s %(levelname)-4s %(message)s')

log_stream1 = StringIO()
log1 = logging.getLogger('a')
log1.setLevel(logging.DEBUG)
stream_handler1 = logging.StreamHandler(log_stream1)
stream_handler1.setLevel(logging.INFO)
stream_handler1.setFormatter(formatter)
log1.addHandler(stream_handler1)

log_stream2 = StringIO()
log2 = logging.getLogger('b')
log2.setLevel(logging.DEBUG)
stream_handler2 = logging.StreamHandler(log_stream2)
stream_handler2.setLevel(logging.INFO)
stream_handler2.setFormatter(formatter)
log2.addHandler(stream_handler1)

log1.info('log1')
log2.info('log2')

输出:

    In [6]: log_stream1.getvalue()
Out[6]: '2017-06-08 10:05:12,468 a INFO log1\n2017-06-08 10:05:12,468 b INFO log2\n'

In [7]: log_stream2.getvalue()
Out[7]: ''

最佳答案

改变

log2.addHandler(stream_handler1)

log2.addHandler(stream_handler2)

整个代码:

import logging
from StringIO import StringIO
formatter = logging.Formatter('%(asctime)s %(name)-3s %(levelname)-4s %(message)s')

log_stream1 = StringIO()
log1 = logging.getLogger('a')
log1.setLevel(logging.DEBUG)
stream_handler1 = logging.StreamHandler(log_stream1)
stream_handler1.setLevel(logging.INFO)
stream_handler1.setFormatter(formatter)
log1.addHandler(stream_handler1)

log_stream2 = StringIO()
log2 = logging.getLogger('b')
log2.setLevel(logging.DEBUG)
stream_handler2 = logging.StreamHandler(log_stream2)
stream_handler2.setLevel(logging.INFO)
stream_handler2.setFormatter(formatter)
log2.addHandler(stream_handler2)

log1.info('log1')
log2.info('log2')

关于Python日志记录,如何将信息写入2个单独的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44429091/

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