Below is my dummy script. It works fine, but the log file is empty even post running. What is wrong? I am assuming it to be related to the multiprocessing logger but not able to figure out yet.
import os
import multiprocessing
import traceback
import logging
def get_ids():
    return [i for i in range(100)]
def function_name(ids):
    if ids[0] % 4 == 0:
        raise Exception(f"Error processing chunk starting with id {ids[0]}")
    
    # Do some processing here
    print(f"Processing chunk starting with id {ids[0]}")
    return
def process_chunk(chunk):
    logger = multiprocessing.get_logger()
    try:
        function_name(chunk)
    except Exception as e:
        logger.exception(f"Error processing chunk {chunk}")
if __name__ == "__main__":
    log_path = os.path.abspath(os.path.join(os.path.dirname(__file__), 'example.log'))
    logging.basicConfig(filename=log_path, level=logging.DEBUG)
    ids = get_ids()
    chunks = [ids[i:i + 5] for i in range(0, len(ids), 5)]
    pool = multiprocessing.Pool(processes=8)
    for chunk in chunks:
        pool.apply(process_chunk, args=(chunk,))
    pool.close()
    pool.join()
 
     
    