Python 将日志记录与多处理结合使用
我试图在不同进程之间创建一个日志流,但只有主进程使用该流,子进程使用Python 将日志记录与多处理结合使用,python,logging,multiprocessing,Python,Logging,Multiprocessing,我试图在不同进程之间创建一个日志流,但只有主进程使用该流,子进程使用sys.stdout,我如何修复它 这是我的代码: import functools import io import logging import multiprocessing def log(message, logger): logger.warning(msg=message) def main(): stream = io.StringIO() logger = multiproces
sys.stdout
,我如何修复它
这是我的代码:
import functools
import io
import logging
import multiprocessing
def log(message, logger):
logger.warning(msg=message)
def main():
stream = io.StringIO()
logger = multiprocessing.get_logger()
handler = logging.StreamHandler(stream=stream)
handler.setFormatter(fmt=logging.Formatter(fmt='%(asctime)s | %(processName)s | %(message)s'))
logger.addHandler(hdlr=handler)
log(logger=logger, message='main')
with multiprocessing.Pool(processes=2) as pool:
pool.map(func=functools.partial(log, logger=logger), iterable=['msg1', 'msg2'])
print(stream.getvalue())
if __name__ == '__main__':
main()