This is the code and I am loading configuration from app.json file as you can see file_load is getting file from location and using dictConfig I am getting information about logging handlers, formatters etc. I am trying to write in same file named log.json from multiple instances but having windowspermission error. Any body knows anything please help me.
# Try to importing modules
    try:
        import logging
        from logging import config, Formatter, Handler
        import json
        import os
        import traceback
        from threading import Thread
        import time
        import sys
        import multiprocessing
        from multiprocessing import Process, Semaphore, SimpleQueue, Lock, Event, Manager, current_process, BoundedSemaphore
    # if modules can not be installed than raise an Exception.
    except Exception as e:
        print("Exception occured installing modules", e)
    # class logger to print the data in file calling methods.
    class Logger:
        # when create any object of logger class it will
        def __init__(self):
            # self.semaphore = Semaphore(10)
            self.queue = multiprocessing.Queue()
            file_load = open('C:/Users/desaijb/Desktop/gitpractice/gitpractice/test_log/app.json')
            config_file = json.load(file_load)
            final_config_file = config_file['logging']
            config.dictConfig(final_config_file)
            self.logger = logging.getLogger()
        def debug(self, message):
            logging.getLogger('debug_module')
            self.queue.put(message)
            # self.semaphore.acquire()
            # self.logger.debug(message)
            # self.semaphore.release()
            return True
        def info(self, message):
            logging.getLogger('info_module')
            self.logger.info(message)
            return True
        def warning(self, message):
            logging.getLogger('warning_module')
            self.logger.warning(message)
        def error(self,message):
            logging.getLogger('error_module')
            self.logger.error(message)
        def critical(self, message):
            logging.getLogger('critical_module')
            self.logger.critical(message)
        def receive(self):
            while self.queue:
                received_message = self.queue.get()
    if __name__ == "__main__":
        logg = Logger()
        proc = Process(target=logg.debug, args=('message',))
        proc.start()
following is the error I am getting after running the code.
 Traceback (most recent call last):
      File "C:/Users/desaijb/Desktop/gitpractice/gitpractice/test_log/logger.py", line 63, in <module>
        proc.start()
      File "C:\Program Files\Python36\lib\multiprocessing\process.py", line 105, in start
        self._popen = self._Popen(self)
      File "C:\Program Files\Python36\lib\multiprocessing\context.py", line 223, in _Popen
        return _default_context.get_context().Process._Popen(process_obj)
      File "C:\Program Files\Python36\lib\multiprocessing\context.py", line 322, in _Popen
        return Popen(process_obj)
      File "C:\Program Files\Python36\lib\multiprocessing\popen_spawn_win32.py", line 65, in __init__
        reduction.dump(process_obj, to_child)
      File "C:\Program Files\Python36\lib\multiprocessing\reduction.py", line 60, in dump
        ForkingPickler(file, protocol).dump(obj)
    TypeError: can't pickle _thread.RLock objects
