import logging
import colorlog
import time
from multiprocessing import Process, current_process
def _job(event_id):
[logging.root.removeHandler(handler) for handler in logging.root.handlers[:]]
colorlog.basicConfig(
level=logging.DEBUG,
format="[%(asctime)s %(log_color)s%(levelname)-8s%(reset)s %(processName)s pid:%(process)d] %(message)s "
"%(name)s:%(lineno)d",
filename="main_{0}.log".format(event_id),
filemode='a+',
)
count = 0
while True:
time.sleep(0.1)
logger = logging.getLogger(__name__)
logger.error("fuck: {0} {1}".format(id(logger), event_id))
count += 1
if count == 100:
break
if __name__ == '__main__':
jobs = []
# 生成
for _event_id in range(10):
_p = Process(target=_job, name="{0}_{1}".format(current_process().name, _event_id), args=(_event_id,))
jobs.append(_p)
# 开始并发执行执行
for job in jobs:
job.start()
# 等待执行完毕
for job in jobs:
job.join()