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()