所以我尝试在multiprocessing上下文中使用logging。假设我想让每个进程编写自己的日志文件。以下是我的设置:# worker.py
import logging
import os
def worker( x ) :
"""
Write the value of x in the log file
"""
logger = logging.getLogger( __name__ )
pid = os.getpid() # get the process id
handler = logging.FileHandler( str(pid) + ".log" )
logger.addHandler( handler )
logger.info( "pid={pid}, x={x}".format( **locals() ) )
这是我的main:
^{pr2}$
现在输出日志文件。这是main.log:pid=1985, x=0
pid=1985, x=2
pid=1986, x=1
pid=1985, x=3
pid=1986, x=4
我认为这个输出是正常的:两个子进程将事件传播到根父进程。所以它是否与Logging to a single file from multiple processes场景相对应(是吗?)。但现在是第一个子进程日志文件:pid=1985, x=0
pid=1985, x=2
pid=1985, x=2
pid=1985, x=3
pid=1985, x=3
pid=1985, x=3
这是第二个子日志文件:pid=1986, x=1
pid=1986, x=4
pid=1986, x=4
看起来每个子进程为第一个输入写入一次日志,第二次为两次,第三次为三次,等等,发生了什么?在