Python日志,如何将信息写入2个单独的
我正在尝试登录到不同的StringIOs。我本以为每个记录器都会写入实例化并提供给的每个StringIO。但这不起作用,只有第一个StringIO存储记录的信息。 对我遗漏的东西有什么建议吗Python日志,如何将信息写入2个单独的,python,logging,Python,Logging,我正在尝试登录到不同的StringIOs。我本以为每个记录器都会写入实例化并提供给的每个StringIO。但这不起作用,只有第一个StringIO存储记录的信息。 对我遗漏的东西有什么建议吗 import logging from StringIO import StringIO formatter = logging.Formatter('%(asctime)s %(name)-3s %(levelname)-4s %(message)s') log_stre
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\u handler1)
。
您应该编写log2.addHandler(stream\u handler2)
更改
log2.addHandler(stream_handler1)
到
完整代码:
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')
将log2.addHandler(stream\u handler1)
更改为log2.addHandler(stream\u 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')