如何将日志输出到多个进程的控制台? 示例:
import multiprocessing, logging, multiprocessing_logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger()
multiprocessing_logging.install_mp_handler(logger)
def worker():
while True:
logger.info("This is logging for TEST1")
def worker2():
while True:
logger.info("This is logging for TEST2")
if __name__ == '__main__':
p1 = multiprocessing.Process(target=worker)
p1.daemon = True
p1.start()
p2 = multiprocessing.Process(target=worker2)
p2.daemon = True
p2.start()
p1.join()
p2.join()
但是输出不正确:
INFO:root:This is logging for TEST1
INFO:root:This is logging for TEST2
IINFO:root:This is logging for TEST1
NFO:root:This is logging for TEST2
INFO:root:This is logging for TEST1
INFO:root:This is logging for TEST2
INFO:root:This is logging for TEST1
IINFO:root:This is logging for TEST2
NFO:root:This is logging for TEST1
IINFO:root:This is logging for TEST2
NFO:root:This is logging for TEST1
我尝试使用 multiprocessing-logging库,但没有帮助
最佳答案
您的(更新的)代码在这里运行良好:
INFO:root:This is logging for TEST1
INFO:root:This is logging for TEST1
INFO:root:This is logging for TEST1
INFO:root:This is logging for TEST1
INFO:root:This is logging for TEST1
INFO:root:This is logging for TEST1
INFO:root:This is logging for TEST1
INFO:root:This is logging for TEST1
INFO:root:This is logging for TEST1
INFO:root:This is logging for TEST2
INFO:root:This is logging for TEST1
INFO:root:This is logging for TEST1
INFO:root:This is logging for TEST2
INFO:root:This is logging for TEST2
INFO:root:This is logging for TEST2
INFO:root:This is logging for TEST2
INFO:root:This is logging for TEST2
INFO:root:This is logging for TEST2
INFO:root:This is logging for TEST2
INFO:root:This is logging for TEST2
INFO:root:This is logging for TEST2
INFO:root:This is logging for TEST2
INFO:root:This is logging for TEST2
INFO:root:This is logging for TEST2
INFO:root:This is logging for TEST2
INFO:root:This is logging for TEST2
如果它不适合你那么你应该 file a bug report with multiprocessing-logging .
关于多处理中的 Python 日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40883481/