我有一个程序,它使用multiprocessing.Process对象来分离程序的块。我正在使用以下格式化程序
传递配置的记录器formatter = logging.Formatter( '[%(created)s] [%(threadName)s] %(message)s')
我创建了类似于此
的过程process = multiprocessing.Process(
name='abc',
target=target_function,
args=(log)
)
这将在主进程和子进程中记录消息,如下所示
[1412095772.77] [MainThread] Hello World from main process
[1412095772.77] [MainThread] Hello World from child process
我的理解是threadName应该使用上面的'abc'而不是MainThread。
有谁知道为什么它看起来好像不是吗?
答案 0 :(得分:1)
Formatter
使用其运行的线程的名称。在父进程和子进程中,活动线程为MainThread
,因为每个进程正在运行单个线程。听起来你真的想要打印进程名称,而不是线程名称:
formatter = logging.Formatter( '[%(created)s] [%(processName)s] %(message)s')